Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
KPG писал(а): Без классики Форт- шитого кода Форт можно представить, без стэков это уже сложно, но как "фикс" идеи Форта - возможно. Вполне можно - машинный код. Формально последовательность вызовов - тоже разновидность ШК, но компилировать можно именно исполняемый машинный код, с соответствующими вставками тех же литералов. Тогда адресного интерпретатора не будет.
[quote="KPG"]Без классики Форт- шитого кода Форт можно представить, без стэков это уже сложно, но как "фикс" идеи Форта - возможно.[/quote] Вполне можно - машинный код. Формально последовательность вызовов - тоже разновидность ШК, но компилировать можно именно исполняемый машинный код, с соответствующими вставками тех же литералов. Тогда адресного интерпретатора не будет.
|
|
|
|
Добавлено: Пт июн 05, 2020 18:51 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Wlad писал(а): Hishnik писал(а): ... Не с целью "наехать", а - просто из собственного интереса. А фактор наличия "шитого кода" и, как и "стека", вынесение его в понятийный базис программиста - как-то относится к обсуждаемой теме? Без классики Форт- шитого кода Форт можно представить, без стэков это уже сложно, но как "фикс" идеи Форта - возможно. P.S. А, вообще, в моём понимании Форт делает Фортом именно те решения в его дизайне определяющие его как Форт-систему. Что и для чего значимо или недостаточно в Форт решается индивидуально, но например, для меня Форт состоялся как саморасширяющийся язык, что и отражено в заглавной странице местного форума. (а по факту, как наиболее простая и мощная парадигма программирования не ограниченная синтаксическими условностями. Все условности в понимании Форт применения отдельным Форт пользователем.)
[quote="Wlad"][quote="Hishnik"]...[/quote] Не с целью "наехать", а - просто из собственного интереса. :) А фактор наличия "шитого кода" и, как и "стека", вынесение его в понятийный базис программиста - как-то относится к обсуждаемой теме?[/quote] Без классики Форт- шитого кода Форт можно представить, без стэков это уже сложно, но как "фикс" идеи Форта - возможно. :)
P.S. А, вообще, в моём понимании Форт делает Фортом именно те решения в его дизайне определяющие его как Форт-систему. Что и для чего значимо или недостаточно в Форт решается индивидуально, но например, для меня Форт состоялся как саморасширяющийся язык, что и отражено в заглавной странице местного форума. :) (а по факту, как наиболее простая и мощная парадигма программирования не ограниченная синтаксическими условностями. Все условности в понимании Форт применения отдельным Форт пользователем.)
|
|
|
|
Добавлено: Пт июн 05, 2020 15:26 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Hishnik писал(а): ... Не с целью "наехать", а - просто из собственного интереса. А фактор наличия "шитого кода" и, как и "стека", вынесение его в понятийный базис программиста - как-то относится к обсуждаемой теме?
[quote="Hishnik"]...[/quote] Не с целью "наехать", а - просто из собственного интереса. :) А фактор наличия "шитого кода" и, как и "стека", вынесение его в понятийный базис программиста - как-то относится к обсуждаемой теме?
|
|
|
|
Добавлено: Пт июн 05, 2020 14:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
mOleg писал(а): И все же? Что делает Форт именно Фортом, а, не, скажем DSSP ? Я ради интереса поискал "распознаватели языка программирования". Не в смысле компиляторов, а в смысле "по фрагменту текста понять, что это". Так везде упоминают, что задача не такая простая. Скажем, Бейсик от С# отличить можно, а вот диалекты Си, если там напрямую не используются специфичные вещи - уже не очень. Поэтому для разработчиков, видимо, удобнее ориентироваться на возможности реализованного движка. mOleg писал(а): Hishnik писал(а): Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе.
нуу, не знаю. Прямое указание, что сделан стек, разбор входного потока идет по пробелам, код компилируется "склейкой" - это уже вполне архитектура программы. Безобидное с точки зрения синтаксиса предложение вполне может привести к необходимости кардинальной переделки транслятора. На уровне "у вас в аквариуме уже 10 гуппи и 5 меченосцев, почему вы так против добавления всего одного бегемотика?"
[quote="mOleg"]И все же? Что делает Форт именно Фортом, а, не, скажем DSSP ?[/quote] Я ради интереса поискал "распознаватели языка программирования". Не в смысле компиляторов, а в смысле "по фрагменту текста понять, что это". Так везде упоминают, что задача не такая простая. Скажем, Бейсик от С# отличить можно, а вот диалекты Си, если там напрямую не используются специфичные вещи - уже не очень. Поэтому для разработчиков, видимо, удобнее ориентироваться на возможности реализованного движка.
[quote="mOleg"]Hishnik писал(а): Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе.
нуу, не знаю.[/quote] Прямое указание, что сделан стек, разбор входного потока идет по пробелам, код компилируется "склейкой" - это уже вполне архитектура программы. Безобидное с точки зрения синтаксиса предложение вполне может привести к необходимости кардинальной переделки транслятора. На уровне "у вас в аквариуме уже 10 гуппи и 5 меченосцев, почему вы так против добавления всего одного бегемотика?"
|
|
|
|
Добавлено: Ср июн 03, 2020 20:28 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Victor__v писал(а): Слова разделенные разделителем. Например пробелом.
И то не факт :)) я о том же. Victor__v писал(а): mOleg, кстати, не желаете написать пару слов о своем форке на Вики? пока не хочется. Мне не нравится формат вики.
[quote="Victor__v"]Слова разделенные разделителем. Например пробелом.
И то не факт :))[/quote] я о том же.
[quote="Victor__v"]mOleg, кстати, не желаете написать пару слов о своем форке на Вики?[/quote] пока не хочется. Мне не нравится формат вики.
|
|
|
|
Добавлено: Ср июн 03, 2020 18:38 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Hishnik писал(а): То, что изложено в определении языка :) И все же? Что делает Форт именно Фортом, а, не, скажем DSSP ? Hishnik писал(а): Вот только определение "Форт - язык программирования, у которого разрядность данных равна разрядности адресов команд" корректным не выглядит. тут согласен, тем более, что даже в рамках традиционного Форта проблема с неравенством битовой разрядности чисел легко обходится. Hishnik писал(а): Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе. нуу, не знаю.
[quote="Hishnik"]То, что изложено в определении языка :)[/quote] И все же? Что делает Форт именно Фортом, а, не, скажем DSSP ?
[quote="Hishnik"]Вот только определение "Форт - язык программирования, у которого разрядность данных равна разрядности адресов команд" корректным не выглядит.[/quote] тут согласен, тем более, что даже в рамках традиционного Форта проблема с неравенством битовой разрядности чисел легко обходится.
[quote="Hishnik"]Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе.[/quote] нуу, не знаю.
|
|
|
|
Добавлено: Ср июн 03, 2020 18:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
mOleg писал(а): А что гарантированно является? То, что изложено в определении языка Вот только определение "Форт - язык программирования, у которого разрядность данных равна разрядности адресов команд" корректным не выглядит. Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе. Для сравнения, Си имеет реализации для платформ, кардинально отличающихся по аппаратной архитектуре. Там и фон Нейман, и гарвард, и SHARC, и банки памяти, и разрядность от 8 до 64... и на формат входного языка это оказывает только опосредованное влияние.
[quote="mOleg"]А что гарантированно является?[/quote] То, что изложено в определении языка :) Вот только определение "Форт - язык программирования, у которого разрядность данных равна разрядности адресов команд" корректным не выглядит. Такие характеристики, как "стековый", "регулярная грамматика", "конкатенативная компиляция" уже ближе.
Для сравнения, Си имеет реализации для платформ, кардинально отличающихся по аппаратной архитектуре. Там и фон Нейман, и гарвард, и SHARC, и банки памяти, и разрядность от 8 до 64... и на формат входного языка это оказывает только опосредованное влияние.
|
|
|
|
Добавлено: Ср июн 03, 2020 13:43 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
mOleg писал(а): А что гарантированно является? Слова разделенные разделителем. Например пробелом. И то не факт mOleg, кстати, не желаете написать пару слов о своем форке на Вики?
[quote="mOleg"]А что гарантированно является?[/quote] Слова разделенные разделителем. Например пробелом.
И то не факт :))
mOleg, кстати, не желаете написать [url=http://forth.wikidot.com/system:wanted-pages]пару слов о своем форке на Вики[/url]?
|
|
|
|
Добавлено: Ср июн 03, 2020 10:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
А что гарантированно является?
А что гарантированно является?
|
|
|
|
Добавлено: Ср июн 03, 2020 10:03 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
mOleg писал(а): что же делает Форт Фортом, вроде как, не имеет однозначного ответа. Ну уж разрядность команд и данных не является отличительной особенностью языка.
[quote="mOleg"] что же делает Форт Фортом, вроде как, не имеет однозначного ответа.[/quote] Ну уж разрядность команд и данных не является отличительной особенностью языка.
|
|
|
|
Добавлено: Ср июн 03, 2020 02:42 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Ethereal писал(а): Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт. Который никак не формализуется, ибо он - исключение, характер которого может быть разным и заранее не предсказуем. Смысла ради исключений кастрировать основу Форта нет. Тут я не очень согласен, хотя вопрос, что же делает Форт Фортом, вроде как, не имеет однозначного ответа.
[quote="Ethereal"]Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт. Который никак не формализуется, ибо он - исключение, характер которого может быть разным и заранее не предсказуем. Смысла ради исключений кастрировать основу Форта нет.[/quote] Тут [url=http://fforum.winglion.ru/viewtopic.php?f=2&t=2375]я не очень согласен[/url], хотя вопрос, что же делает Форт Фортом, вроде как, не имеет однозначного ответа.
|
|
|
|
Добавлено: Пн июн 01, 2020 18:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Ethereal писал(а): Форт - это фон-неймановская модель с одинаковой разрядностью стека возвратов и данных и если гарвард, то приходится делать особый Форт, а не просто Форт. Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт. Посмотрел - у меня все форт-продукты гарвардские. Это или изначально раздельные области памяти для кода и данных, или просто гарвардский форт-процессор. В котором месте там проблема, не вижу, а вот решается много чего. По крайней мере, давние эксперименты с фоннеймановской моделью наглядно проявляли проблемы, элементарно решаемые отделением памяти данных - например, выделение адресуемой области памяти в процессе создания слова. Ethereal писал(а): И если у тебя исключение, нужно то, что >R R> нельзя пихать данные просто знать и действовать соответственно. Во многих языках программирования указатель на функцию и данные - это просто разные вещи, которые, как минимум, без явного typecast не переводятся одно в другое. Ethereal писал(а): Что-ты держишься за Мура, оставь его в покое, создавай что-нибудь совсем свое. Мура многовато в Форте, и это проблема тех, кто к нему взывает. Обсуждение Паскаля гораздо реже переводят на личность Вирта, хотя заслуги Вирта в computer science существенно больше таковых у Мура и не сводятся к "изобрел язык". Ethereal писал(а): Он тебя улучшать им сделанное не нанимал. Мур и не смог бы меня нанять
[quote="Ethereal"]Форт - это фон-неймановская модель с одинаковой разрядностью стека возвратов и данных и если гарвард, то приходится делать особый Форт, а не просто Форт. Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт.[/quote] Посмотрел - у меня все форт-продукты гарвардские. Это или изначально раздельные области памяти для кода и данных, или просто гарвардский форт-процессор. В котором месте там проблема, не вижу, а вот решается много чего. По крайней мере, давние эксперименты с фоннеймановской моделью наглядно проявляли проблемы, элементарно решаемые отделением памяти данных - например, выделение адресуемой области памяти в процессе создания слова. [quote="Ethereal"]И если у тебя исключение, нужно то, что >R R> нельзя пихать данные просто знать и действовать соответственно.[/quote] Во многих языках программирования указатель на функцию и данные - это просто разные вещи, которые, как минимум, без явного typecast не переводятся одно в другое.
[quote="Ethereal"]Что-ты держишься за Мура, оставь его в покое, создавай что-нибудь совсем свое. [/quote] Мура многовато в Форте, и это проблема тех, кто к нему взывает. Обсуждение Паскаля гораздо реже переводят на личность Вирта, хотя заслуги Вирта в computer science существенно больше таковых у Мура и не сводятся к "изобрел язык". [quote="Ethereal"]Он тебя улучшать им сделанное не нанимал.[/quote] Мур и не смог бы меня нанять :)
|
|
|
|
Добавлено: Пт май 29, 2020 22:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
zma писал(а): Кроме перечисленных проблем есть ещё одна банальная - очень легко что-то забыть на стеке возвратов перед выходом из определения и обрушить таким образом программу. И отлаживать это не очень просто. Это вообще не проблема. Ошибка, обваливающая программу, это самая благодарная ошибка. Сразу находится и исправляется. А вот если ошибка программу не рушит, только искажает результаты работы программы, да еще и при определенных условиях, вот это жопа. Ее можно не заметить сразу, так и оставить в программе. Hishnik писал(а): которая формирует риски неправильного поведения по меньшей мере в двух вариантах: Язык программирования - это все таки еще и некоторая модель компьютера. Форт - это фон-неймановская модель с одинаковой разрядностью стека возвратов и данных и если гарвард, то приходится делать особый Форт, а не просто Форт. Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт. Который никак не формализуется, ибо он - исключение, характер которого может быть разным и заранее не предсказуем. Смысла ради исключений кастрировать основу Форта нет. Или реализуй модель Форта, пусть и за счет накладных расходов или делай исключение. И если у тебя исключение, нужно то, что >R R> нельзя пихать данные просто знать и действовать соответственно. Просто у тебя наездов на Мура много, но попытки создать что-то свое почему-то сводятся к стремлению или Мура кастрировать или Мура опопсить подражаниями мейнстриму. Что-ты держишься за Мура, оставь его в покое, создавай что-нибудь совсем свое. Он тебя улучшать им сделанное не нанимал.
[quote="zma"]Кроме перечисленных проблем есть ещё одна банальная - очень легко что-то забыть на стеке возвратов перед выходом из определения и обрушить таким образом программу. И отлаживать это не очень просто.[/quote]Это вообще не проблема. Ошибка, обваливающая программу, это самая благодарная ошибка. Сразу находится и исправляется. А вот если ошибка программу не рушит, только искажает результаты работы программы, да еще и при определенных условиях, вот это жопа. Ее можно не заметить сразу, так и оставить в программе. [quote="Hishnik"]которая формирует риски неправильного поведения по меньшей мере в двух вариантах:[/quote]Язык программирования - это все таки еще и некоторая модель компьютера. Форт - это фон-неймановская модель с одинаковой разрядностью стека возвратов и данных и если гарвард, то приходится делать особый Форт, а не просто Форт. Точно также если разрядность стека возвратов не совпадает с разрядностью стека данных, ну так это особый Форт. Который никак не формализуется, ибо он - исключение, характер которого может быть разным и заранее не предсказуем. Смысла ради исключений кастрировать основу Форта нет. Или реализуй модель Форта, пусть и за счет накладных расходов или делай исключение. И если у тебя исключение, нужно то, что >R R> нельзя пихать данные просто знать и действовать соответственно.
Просто у тебя наездов на Мура много, но попытки создать что-то свое почему-то сводятся к стремлению или Мура кастрировать или Мура опопсить подражаниями мейнстриму. Что-ты держишься за Мура, оставь его в покое, создавай что-нибудь совсем свое. Он тебя улучшать им сделанное не нанимал.
|
|
|
|
Добавлено: Пт май 29, 2020 19:37 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Эх, и почему тут нет гулейфра. Он бы сейчас пригодился в кой-то веке
Эх, и почему тут нет гулейфра. Он бы сейчас пригодился в кой-то веке
|
|
|
|
Добавлено: Чт фев 13, 2020 12:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Стек возвратов - норма или хак? |
|
|
Victor__v писал(а): А как вы напишите на форте, ежели там нет доступа к стеку возвратов? Мы же решили его вообще не использовать) Может вы для себя чего и решили, но я пока какого-то единого мнения по теме не вижу. Я лишь привёл пример где доступ к стеку возвратов может понадобиться. Victor__v писал(а): f02732 писал(а): Взять готовую реализацию? Это вообще шикарный перл. Не понимаю. Хотите сказать что никто никогда не писал на форте слова для работы с исключениями или что?
[quote="Victor__v"]А как вы напишите на форте, ежели там нет доступа к стеку возвратов? Мы же решили его вообще не использовать)[/quote] Может вы для себя чего и решили, но я пока какого-то единого мнения по теме не вижу. Я лишь привёл пример где доступ к стеку возвратов может понадобиться.
[quote="Victor__v"] [quote="f02732"]Взять готовую реализацию?[/quote] Это вообще шикарный перл.[/quote] Не понимаю. Хотите сказать что никто никогда не писал на форте слова для работы с исключениями или что?
|
|
|
|
Добавлено: Чт фев 13, 2020 11:58 |
|
|
|
|