Alexey Veselovsky пишет: >> Я поищу и пришлю на ваш адрес. Кстати, с его помощью, я очень >> быстро переписал программы PL/I MF на PC DOS. Ессть ещё два >> транслятора с АДА Janus Ada compiler was recently validated. Alsys >> compiler validated >> > > Я надеюсь что эти компиляторы где-то есть в исходниках, иначе особого > смысла, не имеет. Ada/Ed: https://github.com/daveshields/AdaEd SparForte/BUSH: http://www.pegasoft.ca/sparforte.html Gela: http://forge.ada-ru.org/gela Вопрос интересный и не праздный, попытаюсь поддержать дискуссию. До некоторой степени мне нравится тот уровень абстракции, который позволяет строить Ада. Скажем, в Delphi надо всем показать каждый тип, который используется в protected и private. Система типов, включающая subtypes — подмножества базовых типов, при промежуточных вычислениях в которых результаты могут выходить за рамки subtype, но должны оставаться в рамках type. А также концепция views в системе типов, реализованная type ... is new для не–tagged типов. Не меняя содержимое, меняем взгляд. Чёткое соответствие модуль–файл. А не так, что каждый пишет в любое понравившееся пространство имён, а потом разберись, откуда что пришло. Прозрачная перегрузка (даже слова такого нет, как overload) между модулями. Поиск соответствия не только по типам аргументов, но и по типу результата. Правда, именно в Аде этим пользоваться тяжело. Если я изобретаю Boolean_32, чтобы он всячески выглядел как Boolean, логично перегрузить по аргументам "&", чтоб всякие комбинации Boolean_32 принимал. Однако, стоит только начать перегружать по результатам, как обе этих перегрузки переклинит из–за неоднозначностей, и использование, наоборот, станет исключительно неудобным. Неплохая поддержка низкоуровневых типов, таких, как массивы, особенно, неопределённой длины. Хорошая работа со значениями, а не со ссылками. in out аргументы, reference-counted строки. Наверное, даже можно сделать что–то типа Euphoria Про рандеву не буду упоминать, спорный сиюминутный вопрос. 56ядерные Xeon Phi в каждой квартире не скоро появятся, а миллион или хотя бы тысячу соединений держать хочется, и желательно без миллиона или тысячи потоков. libevent, libdispatch — всё к этому идёт, а нативные потоки — это от недостатка асинхронных версий библиотек. Software Transaction Memory — тоже интересное направление, поддерживается Intel. Ближе к теме, так или иначе сейчас есть потребность компиляции в JavaScript. При всём похвальном разнообразии платформ, куда была портирована Ада, всё равно не хватает И это не только MIPS на роутерах, но и такие платформы, как Flash. Java вернулась в GNAT поздно для web, ну тут и так понятно, что мы на подножках чужого поезда. Пока не попросит толстый клиент компиляцию в SWF и JavaScript, в GNAT их не появится. Зато есть haXe, и некоторые другие языки, компилируемые в JS. В JavaScript компилировать можно по–разному. Событийная модель браузеров устроена так, что управление надо рано или поздно возвращать бразуеру. В принципе, почему бы и нет, но что хуже всего, этот нюанс непрозрачен с точки зрения JavaScript. При этом в JavaScript нет продолжений. И много чего другого нет, типа бектрейсов, что автоматически сгенеренный код мог бы компенсировать. В автоматически сгенеренном коде можно считать условно потраченное время и по истечении лимита выбрасывать специальный exception, который, пролетая через все вызовы, аккумулирует стек продолжений, который потом можно будет размотать и продолжить. Я далёк от роботехники и embedded, зато я вижу, как с нуля поднимаются языки, наплевав на отсутствие биндингов, за счёт обслуживания потребностей web: web–сервер, желательно, асинхронный, на 100500 соединений, желательно, с WebSockets и прочим Comet, либо и вовсе компиляция в JavaScript. И это очень эффектно. От взгляда на язык отделяет один клик. -- If you want to get to the top, you have to start at the bottom
Про компиляцию в js: если бы у Ады был бекенд для llvm, то можно было бы воспользоваться Emscripten: https://github.com/kripken/emscripten/wiki 2013/1/19 Иван Левашев <[email protected]>
Alexey Veselovsky пишет: > Про компиляцию в js: если бы у Ады был бекенд для llvm, то можно было бы > воспользоваться Emscripten: https://github.com/kripken/emscripten/wiki Здорово. Наконец–то C задвинули туда, где ему и место. Я имел в виду что–нибудь типа: p2js: http://habrahabr.ru/post/137336/ DelphiWebScript: http://delphitools.info/dwscript/ То есть, что–нибудь без lax virtual machine -- If you want to get to the top, you have to start at the bottom
Alexey Veselovsky пишет: > Про компиляцию в js: если бы у Ады был бекенд для llvm, то можно было бы > воспользоваться Emscripten: https://github.com/kripken/emscripten/wiki > Попробовал разные примеры. Как–то через раз работает. Интерпретатор Lua работает, и даже Skywriter работает. На c9.io не работает, Firefox 4 им, видишь ли, подавай, а у этих и на FF3 работает. Руки из правильного места. Что–то посложнее, js.js не работает. Int32Array not defined. Нахимичат и сидят, даже не знают, что у них сайты не работают. Так не годится. Не хочу быть в их числе. Поэтому решениям типа p4js и haXe я больше доверяю. -- If you want to get to the top, you have to start at the bottom
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти