Forth
http://fforum.winglion.ru/

Forth vs Python
http://fforum.winglion.ru/viewtopic.php?f=4&t=2013
Страница 6 из 7

Автор:  be_nt_all [ Пн мар 30, 2009 09:23 ]
Заголовок сообщения: 

Mihail писал(а):
Чет типизированный Форт может быть лучше обычного Форта с введенными типами?

полиморфизмом, перезагрузкой операций. Если у меня на стеке одно простое целое и одно 64-разрядное, я им делаю простой SWAP, а не задумываюсь о каком нить -ROT
Mihail писал(а):
Чтобы система программирования бала предпочтительнее Форта, в нее надо вложить
порядок дольше труда чем StrongForth и Фактор вместе взятые.
К примеру, тот-же Питон.

СтронгФорт в нынешнем виде -- это концепт а не готовая к программированию система, а Фактор в его нынешнем виде уже сравним с Питоном.

mOleg писал(а):
Mihail писал(а):
mOleg писал(а):вполне себе Форт, ограничений, конечно добавилось
Суть Форта в отсутствии ограничений

и САМООГРАНИЧЕНИИ И САМОДИСЦИПЛИНЕ ПРОГРАММИСТА :))


Беда в том, что у каждого -- свои самоограничения, и вместо того чтобы развивать какие то совместные проекты, каждый фортер переизобретает велосипед. По крайней мере структура папки devel в spf навевает именно такие мысли.

Автор:  Mihail [ Пн мар 30, 2009 09:53 ]
Заголовок сообщения: 

be_nt_all писал(а):
Mihail писал(а):

Чет типизированный Форт может быть лучше обычного Форта с введенными типами?

полиморфизмом, перезагрузкой операций. Если у меня на стеке одно простое целое и одно 64-разрядное, я им делаю простой SWAP, а не задумываюсь о каком нить -ROT


Так у меня и реализовано. Для этого типы и нужны. А как иначе?

be_nt_all писал(а):
Фактор в его нынешнем виде уже сравним с Питоном.


Можно ссылки не приложения к Фактору.

Автор:  be_nt_all [ Пн мар 30, 2009 10:30 ]
Заголовок сообщения: 

Mihail писал(а):
be_nt_all писал(а):
Чет типизированный Форт может быть лучше обычного Форта с введенными типами?

полиморфизмом, перезагрузкой операций. Если у меня на стеке одно простое целое и одно 64-разрядное, я им делаю простой SWAP, а не задумываюсь о каком нить -ROT


Так у меня и реализовано. Для этого типы и нужны. А как иначе?

Ну ведь StrongForth -- это тоже типы над фортом. Вернее сначала это был 16-разрядный форт на асме (но внутри у него всё равно обычный форт), а теперь это ещё и библиотека на ANSI-Forth. Но ANSI-форт-версия ещё не полная.

В общем StrongForth -- это весьма продуманная система статической типизации над фортом. Посмотрю твою...

Mihail писал(а):
be_nt_all писал(а):
Фактор в его нынешнем виде уже сравним с Питоном.

Можно ссылки не приложения к Фактору.

Пока все приложения можно найти в папочке Extra дистрибутива. Но там уже есть кое-что, на что стоит взглянуть. Ну и вика - http://concatenative.org крутится под фактор-веб сервером + фактор веб-фреймвоком + фактор-wiki (это всё тоже в extra лежит).

Автор:  Mihail [ Пн мар 30, 2009 13:06 ]
Заголовок сообщения: 

be_nt_all писал(а):
Вернее сначала это был 16-разрядный форт на асме (но внутри у него всё равно обычный форт), а теперь это ещё и библиотека на ANSI-Forth. Но ANSI-форт-версия ещё не полная.


Зачем мне 16-разрядный форт на асме под ДОС, когда у меня есть 32-х разрядный под Windows
на Форте и на ANSI ориентирован изначально?

be_nt_all писал(а):
Mihail писал(а):

Можно ссылки не приложения к Фактору.

Пока все приложения можно найти в папочке Extra дистрибутива.


А 40M бинарников это только ради типов?
Исхотники F-PL вместе с инфиксной со скобками записью - занимают 20K.

Автор:  be_nt_all [ Пн мар 30, 2009 13:24 ]
Заголовок сообщения: 

Mihail писал(а):
Зачем мне 16-разрядный форт на асме под ДОС, когда у меня есть 32-х разрядный под Windows
на Форте и на ANSI ориентирован изначально?

StrongForth - это прототип а не готовый продукт.
Mihail писал(а):
А 40M бинарников это только ради типов?
Исхотники F-PL вместе с инфиксной со скобками записью - занимают 20K.


В этих 40 метрах лежит огромная библиотека - контейнеры, EBNF, парсер JavaScript, веб сервер и веб фреймвок, что-то вроде бэк-форта. Математика как в КоммонЛиспе (в Питоне - чуть слабее) - длинные целые, рациональные числа, комплексные матрицы и прочая, прочая, прочая... (Всякие приложения вроде вроде вьювера 4-мерных объектов :) ) В общем Фактор -- это скорее Коммон Лисп, но с форт-синтаксисом.

Автор:  be_nt_all [ Ср апр 01, 2009 13:29 ]
Заголовок сообщения: 

Mihail писал(а):
Зачем мне 16-разрядный форт на асме под ДОС, когда у меня есть 32-х разрядный под Windows
на Форте и на ANSI ориентирован изначально?


Твой F-PL, по первому взгляду на исходники - это динамическая типизация. А StrongForth - статическая, и StrongForth/F (который на Форте) развит ни как не меньше F-PL... Да, занимает он около 60К, но компиляция форт-слов со статической типизацией нетривиальная задача.

Автор:  Kopa [ Ср апр 01, 2009 13:58 ]
Заголовок сообщения: 

Была высказано суждение, что пока не будет спроса на
программистов со знанием Форт все развитие будет кустарно-ремесленным.

Но не всё так безнадёжно и Вакансии с упоминанием Форта, всё же, встречаются

http://www.kramer.ru/about/vacancy/1162/

Код:
Инженер службы технической поддержки
Основные требования к кандидату:

Специальность - радиоинженер
Желателен опыт работы в области разработки РЭА и ПО
Желательно знакомство с языком программирования Forth (Форт), ассемблером
Базовое владение английским языком, обучаемость, бесконфликтность, способность работать с людьми
Служебные обязанности: Консультации по выпускаемым приборам, по построению аудио/видео систем, систем управления, переписка с пользователями, диагностика/проверка приборов, поддержка инфраструктуры офиса, возможно разработка РЭА и ПО

Условия оплаты будут обсуждаться с подходящим кандидатом по результатам собеседования.

Подробные резюме просим направлять по е-mail: katrin@kramer.ru

Ответ будет дан только подходящим кандидатам



P.S. ...

Автор:  Kopa [ Ср апр 01, 2009 16:55 ]
Заголовок сообщения: 

Не зная куда запостить:)

МетаPost программа для создания иллюстраций
её Мета язык построения изображения конвертируется в PostScript.

отправная точка для ознакомления:

http://ru.wikipedia.org/wiki/MetaPost

P.S.

Автор:  Mihail [ Чт апр 02, 2009 00:05 ]
Заголовок сообщения: 

be_nt_all писал(а):
Твой F-PL, по первому взгляду на исходники - это динамическая типизация.


На сколько я понимаю динамическая типизация - это позднее связывание.
Я использую стек типов и действия функций зависят от содержимого этого стека.
Но действием может быть компиляция методов. Таким образом, достигается позднее связывание.
Вообще, поменять время связывания не проблема. Можно сделать динамическое изменение времени
связывания.

Автор:  Hishnik [ Чт апр 02, 2009 00:31 ]
Заголовок сообщения: 

Mihail писал(а):
На сколько я понимаю динамическая типизация - это позднее связывание.

А разве негде посмотреть, что это такое?

Автор:  be_nt_all [ Чт апр 02, 2009 09:19 ]
Заголовок сообщения: 

Mihail писал(а):
На сколько я понимаю динамическая типизация - это позднее связывание.

Разумеется
Mihail писал(а):
Я использую стек типов и действия функций зависят от содержимого этого стека.
Но действием может быть компиляция методов. Таким образом, достигается позднее связывание.
Вообще, поменять время связывания не проблема. Можно сделать динамическое изменение времени
связывания.

Да, но при изменении времени связывания на раннее нужно, как минимум делать откат стека типов на ветвь "иначе" условного оператора (это при условии что мы новых управляющих конструкций не определяем)...

Ну а вообще СтронгФорт по сути так и работает, у его автора получилось около 60К исходников (вместе с комментариями).

Автор:  chess [ Чт апр 02, 2009 09:29 ]
Заголовок сообщения: 

Хищник писал(а):
Mihail писал(а):
На сколько я понимаю динамическая типизация - это позднее связывание.

А разве негде посмотреть, что это такое?


Вот выдержка из Википедии:
Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры динамически типизированных языков — Smalltalk, Python, Руби, PHP, Perl, JavaScript.

Посмотреть на это конечно можно, но в применении к форту это понятие(динамическая типизация) некорректно использовать,
так как понятие типа в форте как базовое отсутствует в связи с принятым стековым механизмом передачи параметров.

Автор:  be_nt_all [ Чт апр 02, 2009 09:37 ]
Заголовок сообщения: 

chess писал(а):
Посмотреть на это конечно можно, но в применении к форту это понятие(динамическая типизация) некорректно использовать, так как понятие типа в форте как базовое отсутствует в связи с принятым стековым механизмом передачи параметров.

Ну и о чём спор? Мы с Михаилом говорили о способах введения в типизации в Форт. И кстати сама по себе стековая архитектура ни статической, ни динамической типизации не противоречит...

Автор:  chess [ Чт апр 02, 2009 10:13 ]
Заголовок сообщения: 

be_nt_all писал(а):
Ну и о чём спор? Мы с Михаилом говорили о способах введения в типизации в Форт. И кстати сама по себе стековая архитектура ни статической, ни динамической типизации не противоречит...

Стековая архитектура не противоречит, а единственный стековый механизм передачи параметров просто делает понятие типизации ненужным. Тут ведь речь идет о том, что вроде-бы благая идея ввести типы в Форте даст больше вреда чем пользы.
Да, про время связывания, - никакого отношения к динамической типизации это понятие не имеет. В фортовском понимании
это просто время связывания имени с кодом. Для макросов, например, имеем позднее связывание, для слов - раннее.

Автор:  Mihail [ Чт апр 02, 2009 11:45 ]
Заголовок сообщения: 

Mihail писал(а):
Но действием может быть компиляция методов. Таким образом, достигается позднее связывание.


Тут я ошибся: "компиляция методов" это раннее связывание.
Поздним связыванием будет компиляция абстрактных функций (посылок в терминах ООП).
Но вроде идея понятна.

be_nt_all писал(а):
Да, но при изменении времени связывания на раннее нужно, как минимум делать откат стека типов на ветвь "иначе" условного оператора (это при условии что мы новых управляющих конструкций не определяем)...


Да это у меня не реализовано, хотя связывание раннее. Но в сохранении содержимого стека
типов большой проблемы не вижу. Честно говоря, разработка довольно сырая. Главное, что я хотел продемонстрировать, это то, что для применения процедур требующих типизированных данных, не нужна
какая-то особая форт-система, при этом остается доступными процедуры базовой форт-системы
(без типов).

chess писал(а):
Стековая архитектура не противоречит, а единственный стековый механизм


Форт ничему не противоречит. И что за стековый механизм?
Есть стек данных которым можно пользоваться, при этом можно завести
еще кучу стеков и других структур даных. Вот я и завел стек типов, который
содердит идентификаторы обознацающие типы данных на стеке данных
и процедуры, которые которые действуют в зависимости от содержимого этого стека.

Страница 6 из 7 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/