Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

http://pascal.net.ru/Somatic
Создал страничку, выражающую своё видение Somatic Pascal и Somatic Runtime.

#5OAPDU (0) / @octagram / 3941 день назад

http://www.teamten.com/lawrence/projects/turbo_pascal_compiler/
Реализация подмножества Turbo Pascal на JavaScript.
JavaScript, как известно, не экранирует от разработчика необходимость периодического возврата управления, и при этом никаких продолжений для простого решения этой проблемы в языке не предусмотрено, так что любой подобный проект в том числе подразумевает обход этих ограничений. В этой реализации сначала Pascal компилируется в p-code (причём, вроде бы аналогичный виртовскому), затем выполняется на виртуальной машине (Machine.js), которая после изчерпания лимита инструкций делает setTimeout и тем самым преодолевает ограничение JavaScript. Delay реализован корректно, выполнение виртуальной машины останавливается и продолжается через указанный интервал, а не через 0, как обычно, при изчерпании лимита инструкций. А вот ReadKey -- нет, его блокирующим ещё не сделали.

#3QHQ17 (8) / @octagram / 3962 дня назад
http://www.prleap.com/pr/196931/ В новой версии ObjectAda реализована долгожданная поддержка стандарта Ada 2005 Таким образом, у нас есть GNAT (Ada 2012), ObjectAda (Ada 2005) и Irvine ICCAda (частичная поддержка Ada 2005). Многочисленные Green Hills так и застряли в Ada 95. 2005й по сравнению с 95м более прорывной, чем 2012й по сравнению с 2005м IMHO, так что это отличная новость. Крутые адские перцы, у которых по работе под рукой несколько компиляторов, теперь будут более охотно применять фичи 2005ой в open source библиотеках. ObjectAda дешевле GNAT Pro, что должно снизить барьеры внедрения Ады в production.
#VJGHYQ (0) / @octagram / 4350 дней назад
Generics хреново сочетаюся с отсутствием нормального RAII, но, наверное, в Embarcadero думают иначе. Предположим, нас интересует арифметика только с операторами +, -, *. Представим себе, что у нас, помимо Integer, есть модуль длинной целочисленной арифметики. Далее, есть generic, который на вход берёт целочисленный тип, а на выходе даёт рациональные числа из них. Либо для вещественных чисел можно взять Double. Далее, есть generic, который на вход берёт тип вещественных чисел, а на выходе даёт комплексные числа из них. Далее, есть generic, который на вход берёт некий числовой тип и делает из него матрицы. Проверить, нормальные ли generics в языке программирования, довольно просто: все возможные осмысленные комбинации этих generic'ов должны быть рабочими, и написание каждого из этих модулей не должно быть утомительным обходом языковых ограничений. Впрочем, в Delphi их хотя бы возможно обойти. Во Free Pascal generics последний раз, когда я смотрел спецификацию, никуда не годятся, потому что нет RAII. Никогда не понимал ФриПаскалистов. Скопировали Delphi 7, а дальше не стали. Испортили язык фичами из C++, но так же хорошо, как в C++, они не могут работать. Про Аду и знать не хотят.
#UI6HFN (0) / @octagram / 4597 дней назад
В Delphi XE2 так и не сделали человеческий, блин, RAII, с контролем над инициализацией (Interface и Variant инициализируются nil, нельзя вызвать метод, пока переменная не инициализирована; у record есть деструкторы, но нет конструкторов) и копированием (у Interface инкрементируется счётчик ссылок, не всегда то, что нужно), и это всё несмотря на то, что в RTL всё необходимое давно есть! Лечится, допустим, оборачиванием interface в record с методами. Методы record сначала проверят, а не nil ли интерфейсное поле, инициализируют при необходимости. Далее, если метод собрался что–то менять, можно сделать Copy On Write. И только после этого передавать вызов интерфейсному объекту. Прям хоть модули для m4 пиши, чтоб одно и то же не копипастить вручную. Несмотря на это, Delphi нельзя назвать застойным. В нём–таки сделана поддержка Unicode, COFF OBJ, Win64, всего того, что очень долго ждали.
#9I6YB3 (0) / @octagram / 4597 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.