Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Hishnik писал(а): Лисп в целом чем-то похож на Форт в части стиля работы с ним. Работа с Лисп в Форт-стиле. Создаем исполняемый файл на Clozure Common Lisp с помощью ихнего аналога SAVE-SYSTEM : Код: (defun hello () (format t "Hello, world!")) (ccl:save-application "hello.exe" :toplevel-function #'hello :prepend-kernel t ) Действительно получается EXE-шник. И запускается. И работает. Да только весит 19 мегабайт. Но мне тильдочка перед hello понравилась. Ну прям токен заполучаем.
[quote="Hishnik"]Лисп в целом чем-то похож на Форт в части стиля работы с ним.[/quote]Работа с Лисп в Форт-стиле. Создаем исполняемый файл на Clozure Common Lisp с помощью ихнего аналога SAVE-SYSTEM : [code](defun hello () (format t "Hello, world!")) (ccl:save-application "hello.exe" :toplevel-function #'hello :prepend-kernel t )[/code]Действительно получается EXE-шник. И запускается. И работает. Да только весит 19 мегабайт. :shock: Но мне тильдочка перед hello понравилась. :) Ну прям токен заполучаем.
|
|
|
|
Добавлено: Пт сен 01, 2017 21:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Hishnik писал(а): KPG писал(а): Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность" Думаю это близко и к пониманию Форт Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним. Угу. Программисты на Лисп смотрят на программистов на Форт, как на УнаБомбера :
[quote="Hishnik"][quote="KPG"]Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность" Думаю это близко и к пониманию Форт [/quote] Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним.[/quote]Угу. Программисты на Лисп смотрят на программистов на Форт, как на УнаБомбера : [img]http://vintage-digital.com/hefner/misc/lisp-programmers.jpg[/img]
|
|
|
|
Добавлено: Вт авг 29, 2017 16:32 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Ethereal писал(а): Так я именно так и делаю. Скорее всего, так и есть. Похоже, тут чисто терминологические невязки. Слово, использующее кадр стека так, как ему удобно - это по-Forth-овски, а "механизм локальных переменных" - уже нет. Разница не в том, как оно работает, а насколько требует внесения в стандарт. И насколько, внесенное в стандарт, оно будет требовать от программиста делать так, даже, если оно не будет удобно. См. например, http://gudleifr.forum2x2.ru/t31-topic#250.
[quote="Ethereal"]Так я именно так и делаю.[/quote]Скорее всего, так и есть. Похоже, тут чисто терминологические невязки. Слово, использующее кадр стека так, как ему удобно - это по-Forth-овски, а "механизм локальных переменных" - уже нет. Разница не в том, как оно работает, а насколько требует внесения в стандарт. И насколько, внесенное в стандарт, оно будет требовать от программиста делать так, даже, если оно не будет удобно. См. например, [url]http://gudleifr.forum2x2.ru/t31-topic#250[/url].
|
|
|
|
Добавлено: Вт авг 29, 2017 16:32 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
@Gudleifr Так я именно так и делаю. У меня однопроходный Оберон получается. Т.е. программа рассматривается как поток, который разбирается на лексемы, выражения разбираются на операнды и операторы. Инфиксные выражения в процессе рекурсивного разбора автоматически выворачиваются постфиксными. Хоть код стек-машины сразу порождай. Правда, я хочу порождать код не для стековой, а для регистровой машины. Из-за этого в процессе рекурсивного разбора приходится на следующий уровень рекурсии передавать наследие - указатель на запись в которой хранятся атрибуты ранее разобранного - подгружено ли в регистр, если да, то в каком регистре, если нет, то по какому базовому регистру и с каким смещением адресуется, какого типа - Integer и оперируем словами или Boolean и байтами и прочая, прочая. И все эти атрибуты временны и локальны на данном вложении рекурсии. Короче, нужна локальная переменная в подпрограмме типа запись. А она в изначальном Форте (CORE words) костылируется. Т.е. сама задача требует костыль.
Не, ну можно конечно запись разложить на кучу отдельных переменных. Но тогда на следующий уровень рекурсии придется передавать на стеке их все. И всюду оперировать с ними с помощью PEEK. Но тогда совсем некрасиво выйдет. Слово с 10-ю входными параметрами - это совсем некрасиво. По моему это как раз тот случай, когда стоит в Форт притащить сущности из других ЯВУ - локальные переменные (в данном случае неименованные) и записи.
@Gudleifr Так я именно так и делаю. У меня однопроходный Оберон получается. Т.е. программа рассматривается как поток, который разбирается на лексемы, выражения разбираются на операнды и операторы. Инфиксные выражения в процессе рекурсивного разбора автоматически выворачиваются постфиксными. Хоть код стек-машины сразу порождай. Правда, я хочу порождать код не для стековой, а для регистровой машины. Из-за этого в процессе рекурсивного разбора приходится на следующий уровень рекурсии передавать наследие - указатель на запись в которой хранятся атрибуты ранее разобранного - подгружено ли в регистр, если да, то в каком регистре, если нет, то по какому базовому регистру и с каким смещением адресуется, какого типа - Integer и оперируем словами или Boolean и байтами и прочая, прочая. И все эти атрибуты временны и локальны на данном вложении рекурсии. Короче, нужна локальная переменная в подпрограмме типа запись. А она в изначальном Форте (CORE words) костылируется. Т.е. сама задача требует костыль.
Не, ну можно конечно запись разложить на кучу отдельных переменных. Но тогда на следующий уровень рекурсии придется передавать на стеке их все. И всюду оперировать с ними с помощью PEEK. Но тогда совсем некрасиво выйдет. Слово с 10-ю входными параметрами - это совсем некрасиво. По моему это как раз тот случай, когда стоит в Форт притащить сущности из других ЯВУ - локальные переменные (в данном случае неименованные) и записи.
|
|
|
|
Добавлено: Вт авг 29, 2017 16:02 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Ethereal писал(а): А если нужно именно то, для чего сделан костыль ? Зачем делать костыли, если легче отрастить ноги? Ethereal писал(а): Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E)) Рекурсивными выражениями занимаются языки описания грамматик (тот же yacc, для определенности). Сравним yacc-программу и FORTH-систему. Обе получают на вход ПОТОК символов и складывают то, что прочли, в СТЕКообразные структуры. Когда в стеке будет собрана более-менее полная конструкция, она сворачивается (или компилируется). Велика ли разница между ПОТОКАМИ и СТЕКАМИ обеих программ? Если воспринимать FORTH, как нечто окончательное, то велика (хотя, Мур легко победил частный случай - инфиксную арифметику). Но, если мы легко пишем нашу FORTH-систему на коленке, то что, так трудно научится разбирать ПОТОК на операнды и операторы? И сделать СТЕК деревом? Легко. (Я даже пытался классифицировать способы добавления в FORTH таких фич - http://fforum.winglion.ru/viewtopic.php?f=16&t=2990). Ethereal писал(а): Броуди читать ? Лучше Мура.
[quote="Ethereal"]А если нужно именно то, для чего сделан костыль ?[/quote]Зачем делать костыли, если легче отрастить ноги?
[quote="Ethereal"]Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E))[/quote]Рекурсивными выражениями занимаются языки описания грамматик (тот же yacc, для определенности). Сравним yacc-программу и FORTH-систему. Обе получают на вход ПОТОК символов и складывают то, что прочли, в СТЕКообразные структуры. Когда в стеке будет собрана более-менее полная конструкция, она сворачивается (или компилируется). Велика ли разница между ПОТОКАМИ и СТЕКАМИ обеих программ? Если воспринимать FORTH, как нечто окончательное, то велика (хотя, Мур легко победил частный случай - инфиксную арифметику). Но, если мы легко пишем нашу FORTH-систему на коленке, то что, так трудно научится разбирать ПОТОК на операнды и операторы? И сделать СТЕК деревом? Легко. (Я даже пытался классифицировать способы добавления в FORTH таких фич - [url]http://fforum.winglion.ru/viewtopic.php?f=16&t=2990[/url]).
[quote="Ethereal"]Броуди читать ?[/quote]Лучше Мура.
|
|
|
|
Добавлено: Вт авг 29, 2017 00:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
KPG писал(а): Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность" Думаю это близко и к пониманию Форт Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним.
[quote="KPG"]Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность" Думаю это близко и к пониманию Форт [/quote] Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним.
|
|
|
|
Добавлено: Вт авг 29, 2017 00:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Взаимоисключающие параграфы. Если Форт можно превратить в то, что нужно, значит он способен на то, что нужно. А если нужно именно то, для чего сделан костыль ?
Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E)) - нужна рекурсия - нужна своя локальная запись для свойств подвыражения на каждом вложении рекурсии. Значит костылим локальные записи, потому-что это реально нужно. Я и накостылил.
Кстати, а где ознакомиться с типичными Форт-решениями ? Вот что я придумал, то мне и знакомо. Броуди читать ?
Взаимоисключающие параграфы. Если Форт можно превратить в то, что нужно, значит он способен на то, что нужно. А если нужно именно то, для чего сделан костыль ?
Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E)) - нужна рекурсия - нужна своя локальная запись для свойств подвыражения на каждом вложении рекурсии. Значит костылим локальные записи, потому-что это реально нужно. Я и накостылил.
Кстати, а где ознакомиться с типичными Форт-решениями ? Вот что я придумал, то мне и знакомо. Броуди читать ?
|
|
|
|
Добавлено: Пн авг 28, 2017 23:42 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
_KROL писал(а): Вообще некоторые "костыли" просто необходимы, потому как уже придуманы. Ну никто же не запрещает их использовать Костыль - это способ сделать что-то, на что язык программирования не способен изначально. FORTH - не язык, на нем можно писать языки, изначально делающие то, что нужно.
[quote="_KROL"]Вообще некоторые "костыли" просто необходимы, потому как уже придуманы. Ну никто же не запрещает их использовать :)[/quote]Костыль - это способ сделать что-то, на что язык программирования не способен изначально. FORTH - не язык, на нем можно писать языки, изначально делающие то, что нужно.
|
|
|
|
Добавлено: Пн авг 28, 2017 23:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Вообще некоторые "костыли" просто необходимы, потому как уже придуманы. Ну никто же не запрещает их использовать
Вообще некоторые "костыли" просто необходимы, потому как уже придуманы. Ну никто же не запрещает их использовать :)
|
|
|
|
Добавлено: Пн авг 28, 2017 23:15 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Ethereal писал(а): Не передергивайте. Я не передергиваю. Позиция коллеги Victor__v в точности, как Вы описали. Он мечтает об идеальном FORTH, но пишет на Python и не видит в задаче типичных FORTH-решений, предпочитая тащить в FORTH костыли из других языков.
[quote="Ethereal"]Не передергивайте.[/quote]Я не передергиваю. Позиция коллеги [b]Victor__v[/b] в точности, как Вы описали. Он мечтает об идеальном FORTH, но пишет на Python и не видит в задаче типичных FORTH-решений, предпочитая тащить в FORTH костыли из других языков.
|
|
|
|
Добавлено: Пн авг 28, 2017 23:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
gudleifr писал(а): Victor__v писал(а): Вот сюда было б воткнуть нативный форт. Спасибо, все уже поняли, что Вы тот, кого коллега Ethereal назвал "среднестатистическим программистом-обывателем". Не передергивайте.
[quote="gudleifr"][quote="Victor__v"]Вот сюда было б воткнуть нативный форт.[/quote]Спасибо, все уже поняли, что Вы тот, кого коллега [b]Ethereal[/b] назвал "среднестатистическим программистом-обывателем".[/quote]Не передергивайте.
|
|
|
|
Добавлено: Пн авг 28, 2017 22:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Hishnik писал(а): Понятно, что сиюминутная коммерческая ценность не всегда совпадает с ценностью идеи как таковой. И Форт тут уже никуда не денется, он свою идею донес до "общественности". Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность" Думаю это близко и к пониманию Форт P.S. Грамотные IT специалисты, скорее всего, читают местный форум тоже. А почему местный персонаж "бесится" должно быть какое то простое объяснение. (@"Шестой лесничий мертвого леса"...)
[quote="Hishnik"]Понятно, что сиюминутная коммерческая ценность не всегда совпадает с ценностью идеи как таковой. И Форт тут уже никуда не денется, он свою идею донес до "общественности".[/quote] Хорошая статья по парадоксу Блаба [url=http://www.nestor.minsk.by/sr/2003/07/30710.html]Грэм, Пол "Lisp: побеждая посредственность"[/url] Думаю это близко и к пониманию Форт :)
P.S. Грамотные IT специалисты, скорее всего, читают местный форум тоже. А почему местный персонаж "бесится" должно быть какое то простое объяснение. :) (@"Шестой лесничий мертвого леса"...)
|
|
|
|
Добавлено: Пн авг 28, 2017 21:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
буду краток - никак
буду краток - никак
|
|
|
|
Добавлено: Пн авг 28, 2017 21:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Victor__v писал(а): Вот сюда было б воткнуть нативный форт. Спасибо, все уже поняли, что Вы тот, кого коллега Ethereal назвал "среднестатистическим программистом-обывателем". Еще с предыдущего поста. Впрочем, это не Ваша вина, а Ethereal.
[quote="Victor__v"]Вот сюда было б воткнуть нативный форт.[/quote]Спасибо, все уже поняли, что Вы тот, кого коллега [b]Ethereal[/b] назвал "среднестатистическим программистом-обывателем". Еще с предыдущего поста. Впрочем, это не Ваша вина, а [b]Ethereal[/b].
|
|
|
|
Добавлено: Пн авг 28, 2017 20:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Как вы себе представляете будующюю Форт ОС? |
|
|
Наш Общий знакомый опять за своё. Запись для случайно зашедших. Вот был случай написать справочник Язык реализации был пайтон. Я прекрасно отдавал себе отчёт в том, что выбор языка не очень удачен. Была ещё проблема с либами в питоне. Я в духе минимализма писал транслятор CSV файлов и обращение к ним как БД ( только чтение ) Будем честны при превышении опр.условий программа начала тормозить. Вызов функций в питоне обходится дорого плюс списки везде. Вот сюда было б воткнуть нативный форт. Написание и отладка осн.функционала не заняла бы много времени. И результат был бы быстрее чем тот же пайтон. Натив рулит
Наш Общий знакомый опять за своё. Запись для случайно зашедших. Вот был случай написать справочник Язык реализации был пайтон. Я прекрасно отдавал себе отчёт в том, что выбор языка не очень удачен. Была ещё проблема с либами в питоне. Я в духе минимализма писал транслятор CSV файлов и обращение к ним как БД ( только чтение ) Будем честны при превышении опр.условий программа начала тормозить. Вызов функций в питоне обходится дорого плюс списки везде. Вот сюда было б воткнуть нативный форт. Написание и отладка осн.функционала не заняла бы много времени. И результат был бы быстрее чем тот же пайтон. Натив рулит
|
|
|
|
Добавлено: Пн авг 28, 2017 18:46 |
|
|
|
|