[02:06:34] <valexey_> .
[07:25:34] <vlad3> Написал на форуме :)
[10:45:11] <egp> армовые платы маздай!!!
[10:45:23] <egp> последовательные порты маздай!!!
[10:45:45] <egp> black sabbath foreva!!!
[10:47:26] <egp> javascript muzdie!!!
[10:59:44] <egp> я пришёл к той идее что мне для разработки нужен лисп!
[10:59:49] <egp> а никак не оберон
[11:01:17] <egp> надо писать оптимизирующий компилятор лиспа сравнимый по качеству кода с оберон и с с++ компилерами
[11:01:28] <egp> вот. буду изучать матчасть
[11:11:26] <egp> (16:09:08) egp: надо создать Визуальный Лисп
(16:09:28) egp: где исходник - не текст а рантайм-обьект
[12:34:35] <valexey> egp: не выйдет :-)
[12:35:12] <valexey> vlad3: все бы тебе решение проблемы на железнячников спихнуть
[12:36:30] <egp> valexey: выйдет запросто
[12:37:41] <valexey> egp: лисп динамически типизированный. что не даст тебе сег нерировать код на уровне c++
[12:38:20] <egp> valexey: гонишь да
[12:38:30] <valexey> либо ты будешь делать кодогенерацию для узкого не интересного подмножества лиспа
[12:38:45] <egp> неа
[12:39:33] <egp> ты плохо знаешь матчасть
[12:41:04] <valexey> хорошо :-) и знаю что хотя есть оптимизирующие компиляторы Common Lisp , но они не компилируют во что то сравнимое с c++
[12:41:34] <egp> а они такой цели не ставят
[12:41:39] <egp> но мне тоже лень
[12:42:47] <egp> мне просто свободное время занять нечем
[12:43:05] <valexey> ставят как раз
[12:43:05] <egp> а джаваскрипт я не люблю
[12:43:13] <egp> ну плохо ставят
[12:43:25] <valexey> борьба за эффективность там очень жестокая
[12:43:41] <valexey> js нужен, но маздай
[12:44:04] <egp> я сам маздай
[12:44:13] <egp> вышлите мне верёвку прочную с мылом
[12:44:49] <valexey> лучше убей себя апстену!
[12:44:56] <egp> не получается найти нишу в жизни :)
[12:45:02] <egp> и туда забицца
[12:46:08] <valexey> жениться тебе нужно, барин :-)
[12:46:17] <egp> а скоро
[12:46:26] <egp> перезваниваюсь тут с одной
[12:47:07] <valexey> это шут
[12:47:12] <valexey> гут
[12:56:49] <valexey> egp: а задачки тоже маздай? :-) http://oberspace.dyndns.org/index.php/topic,338.0.html
[13:10:27] <egp> ваще-то стрим задачек - прикольное времяпрепровождение.
[13:13:34] <egp> надо на досуге университетский курс математики начать
[13:13:49] <egp> а пока эту задачку подолбаю :)
[16:34:55] <valexey> egp: как задачка?
[16:35:50] <egp> да чтото лень. пиво вот пил
[16:51:56] <valexey> :-)
[19:26:32] <valexey_> vlad3: Задачка коварней чем кажется. :-)
[19:26:52] <valexey_> и почему-то никто не хочет даже простейшего решения написать, и затем его совершенствовать.
[19:27:09] <valexey_> на обероне :-)
[20:38:56] <vlad3> Ну вот погоди,я допилю свой компилер на жабаскрипте ;)
[20:49:41] <valexey> vlad3: это что за компилер такой? регулярные выражения?
[20:50:30] <vlad3> компиблер О-7 ;)
[20:52:37] <vlad3> Он уже умеет штуки типа "VAR i, j: INTEGER; BEGIN i := 1; j := 2; i := 1 + i + j - 2 END" со всеми проверками статическими превразать в "var i;/*INTEGER*/var j;/*INTEGER*/i=1;j=2;i=1+i+j-2;"
[20:53:15] <vlad3> Да, и у него нет лексера! ;)
[20:53:35] <vlad3> Пока наткнулся только на одну проблему из-за этого.
[20:53:53] <valexey> vlad3: вау!
[20:54:39] <valexey> небось лексер есть, но он не явный :-)
[20:54:44] <vlad3> Ключевое слово "END" в определенных случаях может встречаться там же где может быть идентификтаор.
[20:55:11] <vlad3> Так что пришлось захэкать парсинг идентификатора - чтобы он не парсил END
[20:55:23] <valexey> vlad3:расширизмы сразу будут, или потом? :-)
[20:55:34] <vlad3> Все потом.
[20:56:20] <vlad3> Кстати, судя по оригинальному описанию в O7 не может быть идентификаторов с подчеркиванием.
[20:56:40] <vlad3> Я пока сделал с подчеркиванием, потому что без как-то совсем стремно.
[20:57:00] <vlad3> Особенность покруче КАПСА :)
[20:58:27] <valexey_> vlad3: да, это так
[20:58:32] <valexey_> более того, в оберон-02 то же самое
[20:58:44] <valexey_> по этому поводу в XDS есть расширизм (включается прагмой)
[20:59:23] <vlad3> пипец. почему??? Вирт настольконе люит форматирование подчеркиваниями? Оно ж не несет никакую другую нагрузку (типа сопоставления с образцом или еще чего).
[20:59:46] <vlad3> Кстати, зацени жабаскриптовый DSL:
[21:00:18] <vlad3> var declarationSequence = and(optional(and("TYPE", repeat(and(typeDeclaration, ";"))))
      , optional(and("VAR", repeat(and(variableDeclaration, ";")))));
[21:00:30] <valexey_> ЛИСП!!!
[21:00:55] <vlad3> Максимум декларативности, что я смог выжать из жабаскрипта.
[21:01:24] <valexey_> щща на LUA покажу образчик eDSL
[21:03:39] <valexey_> -- Types and Comments

 Name = (locale.alpha + P "_") * (locale.alnum + P "_")^0 - V "keywords";
 Number = (P "-")^-1 * V "space" * P "0x" * locale.xdigit^1 *
              -(locale.alnum + P "_") +
          (P "-")^-1 * V "space" * locale.digit^1 *
              (P "." * locale.digit^1)^-1 * (S "eE" * (P "-")^-1 *
                  locale.digit^1)^-1 * -(locale.alnum + P "_") +
          (P "-")^-1 * V "space" * P "." * locale.digit^1 *
              (S "eE" * (P "-")^-1 * locale.digit^1)^-1 *
              -(locale.alnum + P "_");
 String = P "\"" * (P "\\" * P(1) + (1 - P "\""))^0 * P "\"" +
          P "'" * (P "\\" * P(1) + (1 - P "'"))^0 * P "'" +
          V "longstring";
[21:03:48] <valexey_> отсюда: http://lua-users.org/wiki/LpegRecipes
[21:03:56] <valexey_> это кусок парсера Луа писанный на Луа
[21:04:02] <valexey_> декларативненько
[21:04:44] <valexey_> полагаю подобное можно и на js
[21:04:52] <vlad3> Да, наверное, после того как глаз привыкнет ;)
[21:05:30] <vlad3> На жабаскрипте нельзя операторы перегружать. Наверное к счастью ;)
[21:07:03] <valexey_> vlad3: а вот на js подобное: http://pegjs.majda.cz/online
[21:07:29] <vlad3> ссылка битая
[21:08:54] <valexey_> как так? у меня открывается
[21:09:32] <valexey_> http://pegjs.majda.cz/ -- а это?
[21:09:43] <valexey_> короче, оно так:
[21:09:49] <valexey_> /*
* Classic example grammar, which recognizes simple arithmetic expressions like
* "2*(3+4)". The parser generated from this grammar then computes their value.
*/

start
 = additive

additive
 = left:multiplicative "+" right:additive { return left + right; }
 / multiplicative

multiplicative
 = left:primary "*" right:multiplicative { return left * right; }
 / primary

primary
 = integer
 / "(" additive:additive ")" { return additive; }

integer "integer"
 = digits:[0-9]+ { return parseInt(digits.join(""), 10); }
[21:10:56] <valexey_> хотя это DSL а не eDSL таки
[21:10:59] <valexey_> сори
[21:13:03] <valexey_> vlad3: вообще, у вирта же везде CamelCase
[21:13:12] <valexey_> зачем там подчеркивания? :-)
[21:15:23] <vlad3> Дык, совсем экстримизм какой-то. Не всм нравится camel case. Подчеркивания - очень распространенное форматирование.
[21:23:00] <valexey_> vlad3: подозреваю, что подчеркивание не на всех терминалах/наборах символов было в 80-х
[21:23:23] <valexey_> по этой же причине например в Аде операция индексации через круглые скобки а не через квадратные
[21:23:40] <valexey_> Ну и в обероне-паскале (классическом)-модуле комменты через (* *) сделаны
[21:24:40] <valexey_> тогда всякие {}, _, [] были в грамматике языка экстремизмом аля юникодных символов сейчас
[21:24:45] <vlad3> Гы. Уж си насколько древний - и то в нем можно и подчерикиваия и скобки. И триграфы есть ;)
[21:25:20] <valexey_> ну, си делался изначально под одну платформу, поэтому там было известно что {} и [] там будут
[21:25:21] <vlad3> Да, на моем первом компе не было {} скобочек. Тем не менее, какой-то си там был :)
[21:25:46] <valexey_> А вот Оберон/Модула/Ада таки с прицелом на кроссплатформенность host'а
[21:26:35] <valexey_> впрочем, в аде сейчас юникод для идентификаторов таки есть
[21:26:48] <valexey_> и даже есть в стандартной либе такие идентификаторы
[21:26:53] <valexey_> для разных констант вроде pi
[22:08:48] <valexey_> vlad3: и какие же твои оценки сроков по этому транслятору? ;-)
[22:40:06] <vlad3> Никаких. Оно под настроение и под свободное время :)
[22:40:54] <vlad3> Пожалуй уберу подчекркивание, чтоб было максимально совместимо.
[22:58:47] <TRUE> vlad2: лучше закомментируй, а то резко понадобятся, а повторно делать будет лень. Локти себе искусаешь.