Кирилл: Все сообщения за 4 Сентября 2007 года

 
ПнВтСрЧтПтСбВс
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Кирилл

втянувшийся

Еще один довод в пользу Форта со статической типизацией: большинство слов с переменным числом аргументов на стеке (тот же ?DUP) делают двойную работу по принятию решения и ухудшают читабельность текстов программ.
Слова же, возвращающие флаг - бледное подобие исключений... костыль неполной реализации конструкций структурного программирования.
А если замечтаться, в воображении появляется Форт с системой типов Хиндли-Милнера ;)
- Сами понимаете, вселенная-то на моей стороне.
- Вот это мне таким вульгарным и кажется.
 

Кирилл

втянувшийся

Вкратце распиши, а то гуглить некогда
 

Вкратце - типы переменных выводятся из выражения, а значит "стековая нотация" в большинстве случаев необязательна! В ОСАML, Haskell и т.д. именно так ;)
Например : AVERAGE + 2 / ; автоматически протипируется как ( int int — int)
просто исходя из типов + и /
Если не баловаться с полиморфизмом на нижнем уровне (а Форт-идеология как раз такая!) - то все просто.
Потом можно и побаловаться - будет куда сложнее (или эквивалент шаблонов или передача неявного аргумента с указателем таблицы операций), зато получится выразительность типизированных функциональных языков реализованная в компактном императивном.
"Стековая нотация" однако полезна - для самодокументирования, усиления контроля компиляции, а также определения локальных переменных.
А ведь мы так даже Хаскель кое в чем уделаем - необязательным окажется указание не только типа, но и имен и даже количества аргументов: все выводится при компиляции.
А на счёт исключений - их реализовывать придётся, полагаю, в любом случае.
 

При наличии в языке исключений стеко-статичность слов сама по себе не является недостатком, а значит с ней можно спокойно смириться.
Нужен набор модификаторов - public, private, static, final. По умолчанию, полагаю, нужно делать просто private.
 

С точки зрения отделения интерфейса от реализации а также Форт-идеологии лучше будут словари public, static, final.
Кстати, static можно выкинуть - в Форте между явным и неявным self особой разницы нет.
Как вариант - комиплировать введёную строку в анонимное слово и исполнять потом. Какие могут быть подводные камни?
 

Куски между определениями компилируются в безымянные слова, которые потом выбрасываются. JIT однако... ;) На SPF кто-то так получил возможность использовать IF, THEN и т.п. в режиме исполнения.
Даже синтаксис. В приведёном примере двоеточие выглядит уже не в тему... Так и напрашивается "static function str_repeat ..."
 

А не надо из Форта Яву делать ;)
- Сами понимаете, вселенная-то на моей стороне.
- Вот это мне таким вульгарным и кажется.
 

Кирилл

втянувшийся

Не покатит. Это модификаторы Java-методов
 

Почему же? Если главное, чтобы для JVM генерились корректные методы и классы, то это возможно при любом синтаксисе, необязательно Явовском. Т.е. при помещении слова в словарь final - оно может быть точно так же скомпилировано в байт-код как final-метод, как и при указании java-модификатора.
Опять же, это принципиальный для Java вопрос.
Мы же собираемся генерировать нативные Java-классы.
 

Собственно генерировать ничто не мешает :) А static или нет - видно по первому же параметру слова.
Он форт как форт, совершенно типичный, хотя и не очень стандартный.
 

А хочется Форт быстрый и на JVM ;)
- Сами понимаете, вселенная-то на моей стороне.
- Вот это мне таким вульгарным и кажется.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru