Конференция "KOL" » SOL (Соль) = Simple Objects Language
 
  • Vladimir Kladov © (11.01.08 22:25) [140]
    Не получилось сразу обновить. Сейчас только обновил.
  • D[u]fa (13.01.08 10:42) [141]
    так много полезностей (судя по таблице), мне кажется сложно все это будет реализовать...

    зы. имхо конечно
  • Vladimir Kladov © (13.01.08 17:59) [142]
    Сложно потому только что я лично не писал до сих пор полных компиляторов с полных ЯВУ, в основном ассемблерами баловался (правда, один раз в молодости месяца за 3 получился рабочий компилятор с подмножества С в П-код, но это можно объяснить только невероятной наглостью: я же не знал что это так сложно). А так, в принципе, ничего сверх-сложного. Вполне сравнимо с Паскалем и наверняка проще С++. Пока пишу синтаксический анализатор. Даже 4 нотации не так сложны, как можно было бы подумать. Сейчас впереди вижу одну больую сложность: надо как-то реализовывать вычисление константных функций на этапе компиляции, т.е. фактически как бы компилировать код, вызывать его на выполнение, и результат использовать всё ещё в компиляторе. Получается, что эта часть компилятора - сама платформо-зависимая (код ведь должен быть выполнимым на той же платформе где запущен сам компилятор). Для полной платформо-независимости можно сделать свой П-код, специально для этого этапа, и эмулятор П-машины. Это если что.
  • speller (14.01.08 13:54) [143]
    И хотя я уже к Дельфям не прикасаюсь чаще раза в пол года, стараюсь иногда заглядывать сюда по старой памяти. Владимир, я просто восхищен вашим трудолюбием и количеством наработок! Моё уважение. Желаю успехов в ваших начинаниях! )
  • misha_shar © (16.01.08 16:05) [144]
    Выброси константные функции и всего то делов. В простом языке это не надо. Надо будет заведу переменную и вычислю.
  • Vladimir Kladov © (16.01.08 16:39) [145]
    Нет, не выброшу. Это можно сказать треть всех инноваций. Кстати, я язык переименовал. Хоть я и стремился сделать как можно проще (и надеюсь, что это вышло почти), надёжность дороже. Константные функции дают очень много, в том числе для надёжности. Ведь вычисление происходит (в случае константного аргумента) - во время компиляции, а не во время выполнения Недостаток времени выполнения в том, что до вычисления, при котором всё ломается, во время тестирования, может и не дойти. А если константа - вычислится всегда.
  • Vladimir Kladov © (17.01.08 21:22) [146]
    Обновил. Добавилась параметризация модуля. Одной числовой константой всего, но лчно мне хватит.
  • DmitrtyAx (19.01.08 02:54) [147]
    Владимир!! Успехов! Очень долго читал, и пока только общие впечатления - настоящая поэма! Правда основание слишком широкое - мультиплатформенность при всех заявленых опциях... Огромное количество библиотек для разных процессоров, отладка на виртуальной машине(ах)... Библиотеки под разные ОС... По сравнению с этим KOL - это совсем небольшой проект.
    Вместе с тем, очень надеюсь, что появится первая реализация, которую можно будет поторогать руками.
    Завтра продолжу читать, а то у нас тут уже семь утра...
  • lse (21.03.08 20:45) [148]
    Здравствуйте, Владимир.
    Как успехи на поприще разработки нового языка программирования ?
  • zldo (02.07.08 14:48) [149]
    У современного поколения программистов отсутствие необходимости объявлять переменные способно вызвать страх уровня фобии.
    То есть как я понял оператора with тоже не будет?
    Не скажется ли такой подход на читаемости кода для случая если используются сложные вложенные структуры?
  • Vladimir Kladov (02.07.08 15:53) [150]
    with способен только запутать, но никак не упростить. Кто видел, тот знает.
  • zldo (07.07.08 10:41) [151]
    все хорошо в меру, но его отсутствие сделает синтаксис для такой замечательной возможности ООП как инкапсуляция громоздким...
    Может быть ввести некоторые ограничения и особую фому записи? Например сделать невозможность вложенности этого оператора, а внутри его тела использовать специальную форму доступа с полям допустим что-то в духе:


    LongLongTitle = object
     field1,
     field2,
    и т.д.

    и обращение

    with LongLongTitle do
    begin
     .field1 = .field2
     .field2 = myvariable
    end;


    т.е. не создавать оператором "область видимости" для переменных а дать возможность программисту делать сокращенную запись.
  • Vladimir Kladov (07.07.08 16:48) [152]
    Сокращать запись - себе дороже. Программу пишут один раз, а исправляют и подправляют, да и читают просто - десятки и сотни раз. Ну и зачем себе сложности устраивать? Посмотрите, как код пишется в C# - все пишется полностью и без никаких with. При этом при наборе текста чаще всего достаточно вообще одну буквц набрать, и наиболее подходящее имя высвечивается туту же, остаётся только enter нажать. Куда уже короче?

    Смысл не в самой короткой записи, а в самом надёжном коде (и при том достаточно эффективном - хотя бы за счёт константых функций, т.е. выполнении на этапе компиляции значительной части проверок), я так понимаю. Вот этот фокус со вставкой строк на языках SQL и прочая - ни в каком C# даже близко не лежало. Может, там что другое предлагается, но я пока не нашёл, хотя немножко программировать на нём попробовал.
  • Vladimir Kladov (07.07.08 16:56) [153]
    Я ещё посмотрел (спустя полгода), и в отличие от предыдущих набросков, изменений практически нет. Единственное, что надо бы выкинуть слово PUBLIC (всё публичное по умолчанию), и оставить HIDDEN, и писать его всё-таки перед каждым объявлением чего-либо скрытого. И вернуться к варианту, когда легальный доступ к скрытому идёт через составное имя HIDDEN. Типа MyObject.HIDDEN.Field1. Немножко меняется IMPORT, всё остальное пока так же. Еще есть смысл для конкатенации строк использовать оператор ',', а не ||. Или как вариант, или всегда. А так - в общем мне самому понравилось. Специально надолго отложить, чтобы самому этот сумбур попытаться воспринять как с листа.

    А делать можно именно как компилятор в код на паскале, Си, С# - без особой разницы. Для большей скорости отладки можно делать паскаль-код, и подсовывать его Delphi-компилятору, а для конечной сборки делать выход, к примеру, на Си. Компилятор, который сразу делает маш-код - не самоцель. В общем, это явзык высокого уровня следующего порядка высокости, после Си или Паскаля, можно даже считать его case-средством.
 
Конференция "KOL" » SOL (Соль) = Simple Objects Language
Есть новые Нет новых   [134431   +15][b:0.001][p:0.001]