Forth http://fforum.winglion.ru/ |
|
Как сделать форт-систему без ошибок? http://fforum.winglion.ru/viewtopic.php?f=4&t=3172 |
Страница 3 из 4 |
Автор: | mOleg [ Вс май 13, 2018 18:56 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Hishnik писал(а): mOleg писал(а): сразу возвращающие результат преобразования в виде строки со счетчиком. Строку со счетчиком можно забыть вместе с Турбо Паскалем. А тут, кстати, все двузначно 8) строка со счетчиком: ( --> asc # ) и причем тут Паскаль Hishnik писал(а): Чего стоят только скобки в виде комментариев похоже, мне вас не понять. Ну никогда не напрягали скобки в качестве комментариев, более того, всегда считал и считаю в тех же Сях содержимое скобок комментарием 8) пускай и анализируемых транслятором. Hishnik писал(а): Соответственно, надо поворачиваться лицом к актуальным задачам, если уж вообще есть необходимость что-то полезное писать, а не просто гордиться наедине с собой причастностью к элитарным технологиям. Это похоже на больное место 8( ну сколько можно поднимать эту тему? ну, ведь, в печенках уже... |
Автор: | Victor__v [ Вс май 13, 2018 19:00 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
[quote=mOleg] бред. Что от этого поменяется? Будут те же <# #S #> а!? Просто менее привычные в использовании... Это не альтернатива, а паллиатив.[/quote] Преобразование не так уж и часто используется. Впрочем, аналога слова #S у меня нет. после использования слова num>s{ на стеке уже лежит строка, над которой можно поколдовать при желании и послать куда-надо и в конце закрыть буфер. Больше и не требуется обычно. |
Автор: | mOleg [ Вс май 13, 2018 19:22 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Victor__v писал(а): Больше и не требуется обычно. ну, вот, напишите свой вариант данного кода: Код: : fname ( --> asc # ) Time{ Local year month day hour minute second } 0x0A {# s" .dat" HOLDS S>D # # DDROP S>D # # DDROP S>D # # DDROP S>D # # DDROP S>D # # DDROP S>D # # s" .\\dat\\" HOLDS #> ; то есть, из системного времени получить уникальное имя для создания файла, содержащего в названии текущие год, месяц, день, час, минуту, секунду т.е.: 20180512220347.dat да, таки используется не сколько нестандартный синтаксис, выражение: 0x0A {# задает преобразование в десятичной системе счисления. т.е. используется вместо BASE @ DECIMAL <# ..... BASE ! |
Автор: | Hishnik [ Вс май 13, 2018 20:58 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
mOleg писал(а): А тут, кстати, все двузначно строка со счетчиком: ( --> asc # ) и причем тут Паскаль При том, что в годы Турбо Паскаля такое представление строк часто использовалось. И в Форт попало. Хотя идеи Форта и форматы данных - независимые в целом вещи. И дело тут не в том, что Форт каким-то образом лучше работает с ASCIIZ, а в том, что реализация должна соответствовать платформе, на которой запускается. mOleg писал(а): похоже, мне вас не понять. Ну никогда не напрягали скобки в качестве комментариев, А дело не в скобках как таковых. Дело в подходе, к сожалению, принятому в Форте уже с давних времен. Что-то отличается от мейнстрима? Отлично! Не будем объяснять, что это имеет объективные причины, а займем позицию "Форт - это круто, вам не понять". Глупо и по-детски. Пример с пятью символами показателен - всем известно, что название Forth появилось, потому что на соответствующем компьютере нельзя было написать Fourth из-за ограничений на длину идентификатора. Муру в рецензии на какую-то статью указали на этот недостаток. И что он сделал? Написал, что да, так и есть, и это определяется объективными ограничениями, но на другой машине можно устранить этот недостаток? Да ничего подобного - направил редактору ответ из слов, ограниченных пять символами! Дескать, все равно же все понятно. Как по мне, это просто мелкое хамство и непрофессионализм. Что произошло со скобками? Да первый же вопрос к Форту - почему там постфикс? Из-за явно заданного порядка вычислений? Так ведь есть скобки. Корректное объяснение этой ситуации основано на рассказе о том, что там делается с постфиксом, и почему все именно так. А что сделано в Форте? Вот вам скобка как комментарий - наткнитесь на нее везде в текстах и подумайте, почему скобки не нужны для задания приоритетов. Ну ладно, я понял, убирайте уже это. mOleg писал(а): Это похоже на больное место 8( ну сколько можно поднимать эту тему? ну, ведь, в печенках уже... Столько, сколько нужно. |
Автор: | mOleg [ Вс май 13, 2018 21:09 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Hishnik писал(а): mOleg писал(а): А тут, кстати, все двузначно 8) строка со счетчиком: ( --> asc # ) и причем тут Паскаль При том, что в годы Турбо Паскаля такое представление строк часто использовалось. да ладно, а просто внимательно прочитать что я написал? Или Паскаль стал уметь возвращать два параметра из функции? Я о том, что строка со счетчиком не обязательно паскалевская строка |
Автор: | Hishnik [ Вс май 13, 2018 21:18 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
mOleg писал(а): да ладно, а просто внимательно прочитать что я написал? Или Паскаль стал уметь возвращать два параметра из функции? Я о том, что строка со счетчиком не обязательно паскалевская строка Я уже несколько раз писал, что строка со счетчиком часто встречалась во времена Турбо Паскаля. Два параметра для строки опять-таки наводят на мысль о "фортовской элитарности". Ну и что, что функции не возвращают больше одного параметра? В Паскале процедуры возвращали много параметров, функции могут вернуть указатель на структуру. Это как раз не тот пример, на котором надо показывать преимущества, тем более что c-addr len это никакое не преимущество. Если передать адрес счетчика и спрятать COUNT внутрь слов, которым нужна длина строки, то все строки начинают определяться единственным параметром. |
Автор: | Victor__v [ Вс май 13, 2018 21:30 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Печаль, нельзя всунуть файлик. Прим. к коду. Можно было и циклы использовать, но мне лень уже. Делал на скорую руку. С циклами было бы попроще воспринять. Код: WINAPI: GetSystemTime KERNEL32 : gmdhms 8 2* ( память для структуры ) RALLOT RF^ >R R@ GetSystemTime DROP \ R@ W@ R@ 2+ W@ R@ 6 + W@ R@ 8 + W@ R@ 10 + W@ R@ 12 + W@ RDROP ; : to-str \ addr g m d h m s -- usign num>s{ 2>R usign num>s{ 2>R usign num>s{ 2>R usign num>s{ 2>R usign num>s{ 2>R usign num>s{ 2>R DUP \ addr addr 1 RPICK OVER R@ MOVE R> + RDROP }num 1 RPICK OVER R@ MOVE R> + RDROP }num 1 RPICK OVER R@ MOVE R> + RDROP }num 1 RPICK OVER R@ MOVE R> + RDROP }num 1 RPICK OVER R@ MOVE R> + RDROP }num 1 RPICK OVER R@ MOVE R> + RDROP }num S" .dat" >R OVER R@ MOVE R> + 0! \ по условию задачи заканчивать на 0 должны ; : TEST 1000 ALLOCATE THROW 0x0A BASE KEEP! gmdhms to-str ; |
Автор: | mOleg [ Пн май 14, 2018 03:46 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Victor__v писал(а): Прим. к коду. Можно было и циклы использовать, но мне лень уже. ну, и что выглядит проще? |
Автор: | _KROL [ Пн май 14, 2018 11:55 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Hishnik писал(а): А дело не в скобках как таковых. Дело в подходе, к сожалению, принятому в Форте уже с давних времен. Что-то отличается от мейнстрима? Отлично! Не будем объяснять, что это имеет объективные причины, а займем позицию "Форт - это круто, вам не понять". Глупо и по-детски. Пример с пятью символами показателен - всем известно, что название Forth появилось, потому что на соответствующем компьютере нельзя было написать Fourth из-за ограничений на длину идентификатора. Муру в рецензии на какую-то статью указали на этот недостаток. И что он сделал? Написал, что да, так и есть, и это определяется объективными ограничениями, но на другой машине можно устранить этот недостаток? Да ничего подобного - направил редактору ответ из слов, ограниченных пять символами! Дескать, все равно же все понятно. Как по мне, это просто мелкое хамство и непрофессионализм. Однообразная жизнь не интересна Hishnik писал(а): Что произошло со скобками? Да первый же вопрос к Форту - почему там постфикс? Из-за явно заданного порядка вычислений? Так ведь есть скобки. Корректное объяснение этой ситуации основано на рассказе о том, что там делается с постфиксом, и почему все именно так. А что сделано в Форте? Вот вам скобка как комментарий - наткнитесь на нее везде в текстах и подумайте, почему скобки не нужны для задания приоритетов. Ну ладно, я понял, убирайте уже это. А зачем в Форт-парсере приоритеты? Кто сказал, что нельзя добавить ещё один парсер и переключится на него, допустим, через вектор?Ты бы ещё Lispерам указал, что их язык не инфиксный, а постфиксный Hishnik писал(а): Если передать адрес счетчика и спрятать COUNT внутрь слов, которым нужна длина строки, то все строки начинают определяться единственным параметром. Так давай ООП в студию!В целом, прошу прощения, если чем-то вас возможно обидел, но не забывайте, что у каждого языка, даже у Форта, есть свои преимущества. P.s. Часто люди фанатично начинают что-то расхваливать нравящееся им, плюя на остальное. После, происходит обратное. Психология, увы. Причём детские/инстинктивные предрассудки. P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться. |
Автор: | Hishnik [ Пн май 14, 2018 12:12 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
_KROL писал(а): А зачем в Форт-парсере приоритеты? Кто сказал, что нельзя добавить ещё один парсер и переключится на него, допустим, через вектор? Нет, речь не об этом. В Форте из-за постфиксной записи не нужны скобки. Почему бы их не использовать для чего-нибудь полезного, вроде выделения фрагментов кода или структур? Однако стандартным флеймом с участие фортеров все время было доказательство всем, что "на стеке тоже можно считать", сопровождавшееся попытками написать для Форта инфикс. Историю введения скобок как комментариев я не знаю, но исходя из логики событий у меня сильное подозрение, что это было сделано в пику критикам. Чтобы видели в тексте скобки, понимали, что это комментарии, и тут же вспоминали, что скобки в Форте не нужны. Это детский ответ на детскую же нападку. _KROL писал(а): Так давай ООП в студию! При чем здесь ООП? _KROL писал(а): Я опять напоминаю, что зря ты убрал Глеба! Серия логических ошибок. 1. "Зря убрал" - с чего бы? 2. "Напоминаю" - напоминать можно о фактах или доказанных и согласованных утверждениях. Создается ложное впечатление, что я "забыл, что зря убрал". 3. "Опять" - это сколько раз уже было, чтобы писать "опять"? |
Автор: | _KROL [ Пн май 14, 2018 12:19 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Hishnik писал(а): _KROL писал(а): А зачем в Форт-парсере приоритеты? Кто сказал, что нельзя добавить ещё один парсер и переключится на него, допустим, через вектор? Нет, речь не об этом. В Форте из-за постфиксной записи не нужны скобки. Почему бы их не использовать для чего-нибудь полезного, вроде выделения фрагментов кода или структур? Однако стандартным флеймом с участие фортеров все время было доказательство всем, что "на стеке тоже можно считать", сопровождавшееся попытками написать для Форта инфикс. Историю введения скобок как комментариев я не знаю, но исходя из логики событий у меня сильное подозрение, что это было сделано в пику критикам. Чтобы видели в тексте скобки, понимали, что это комментарии, и тут же вспоминали, что скобки в Форте не нужны. Это детский ответ на детскую же нападку. Hishnik писал(а): _KROL писал(а): Так давай ООП в студию! При чем здесь ООП? --- Ох, я случайно забыл о заданных вопросах. mOleg писал(а): _KROL писал(а): > Локальные переменные для ввода-вывода можно пояснить о чем речь? mOleg писал(а): _KROL писал(а): > Преобразование данных тоже не ясно mOleg писал(а): _KROL писал(а): > Работа с хэндлами (или может это обьеденить с "работой с памятью"?) тоже не ясно mOleg писал(а): _KROL писал(а): > Связь ШК и нативного кода (НК), если такой имеется а это что значит? |
Автор: | Hishnik [ Пн май 14, 2018 12:33 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
_KROL писал(а): Мне тоже очень не нравятся квадратные скобки, но я же не жалуюсь. Дело не в конкретном частном решении, а в общем подходе - раз кому-то кажется странным, как сделано в Форте, не объяснять, почему так сделано, а демонстративно усиливать. Это и скобки, и мысль, что "Форту плавающая точка не нужна", и вообще реакция на дискуссии как таковая. Некоторые отличия от привычных подходов к программированию следуют из основ Форта, и это не каприз разработчиков, а наиболее естественное решение. Но возведение этих отличий в культ и добавление новых без должных на то оснований - это лишнее и только вредит. _KROL писал(а): А какой есть другой вариант сокрытия размера строк, как не структуры и классы? Если конечно не брать строки с нулевым оканчанием и паскаль-строки. Именно строки с нулевым окончанием довольно широко распространены. Я уже писал, что строка с байтом-счетчиком в начале была в Турбо-Паскале в 90-е годы. Сейчас WinAPI предлагает работу либо с ASCIIZ, либо с Unicode. Спор о форматах данных не имеет перспективы, они определяются платформой. 40-битные целые числа неудобны, они не поддерживаются напрямую. Точно так же неудобны 134-битные числа с плавающей точкой - для них нет аппаратной поддержки. Ну а Windows работает с ASCIIZ-строками. Синтаксис языка тут совершенно ни при чем, а настаивать на c-addr u выглядит опять же капризом из серии "вы там не забудьте, мы - фортеры!". |
Автор: | _KROL [ Пн май 14, 2018 12:57 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Hishnik писал(а): Но возведение этих отличий в культ и добавление новых без должных на то оснований - это лишнее и только вредит. Более того, это глупо, ведь даже нормальный стандарт под Форт ещё не изобретён (если это вообще возможно =]).Hishnik писал(а): Именно строки с нулевым окончанием довольно широко распространены... Синтаксис языка тут совершенно ни при чем, а настаивать на c-addr u выглядит опять же капризом из серии "вы там не забудьте, мы - фортеры!". А кто настаивает? Просто в Форте это зачастую удобнее.Кстати, в Паскале счётчик занимал только байт, а в Форте занимает целую ячейку. P.s. А можно, опять таки, посмотреть с другой стороны: почему вы все используете строку с нулевым оканчанием, а? Везде в чём-то проигрываем, в чём-то выигрываем, поэтому и существуют различные типы оптимизации. |
Автор: | Victor__v [ Пн май 14, 2018 17:47 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Цитата: P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться. И чтобы изменилось? Появился бы участник вопиющий "Вы тупые". Тут пришёл бы mOleg и сами-знаете-кто поудалял бы свои сообщения. И смысл? |
Автор: | _KROL [ Пн май 14, 2018 19:20 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Victor__v писал(а): Цитата: P.p.s. Я опять напоминаю, что зря ты убрал Глеба! Равновесие в головах стало больше нарушаться. И чтобы изменилось? Появился бы участник вопиющий "Вы тупые". Тут пришёл бы mOleg и сами-знаете-кто поудалял бы свои сообщения. И смысл? Мне, например, устраивают известные решения. У Олега очень многое интересно, если покопаться. Другое дело, не всегда устраивает их компоновка, как в исходниках, так и в документации (а она вообще будет у SPF?). |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |