Спасибо на добром слове, Вам тоже творческих успехов
Отвратителен этот ваш КП. Язык неортогональный и почти полностью составленный из костылей. Поэтому очень много кода - сегодня было 3-4 переименования слов с 700 вхождениями. В нормальном языке с МП это было бы 300 вхождений, а то и 200. Я уж не говорю о том, что из-за хвалёного отсутствия инклюдов большие блоки кода копируются из одного файла в другой, причём иногда с ошибками! Так что это не я его мучаю, а он меня.
Может быть, когда-нибудь я напишу о том, что оптимальная сложность языка связана со сложностью программы, которая на нём пишется. Чем сложнее программа, тем сложнее должен быть и язык. Как должна расти сложность языка - я не знаю, может быть, логарифмически, но расти она должна. Поскольку развитый язык даёт способы повторного использования, которых в неразвитом (типа оберона) языке нет. Из-за отсутствия способов повторного использования возникает дублирование кода с присущими ему ошибками, а значит, общая надёжность системы из языка и написанной на нём программы будет для неразвитого языка ниже. При этом надёжность простого языка, если его рассматривать изолированно, будет, конечно же, выше. Но это лишь маркетинговая уловка. Потому что конечному пользователю нужен не надёжный язык, а надёжная программа. Это к вопросу о том, возможен ли маркетинг на лжи. Не только возможен, а даже очень хорошо на некоторых действует.
Так вот, компилятор КП - это уже достаточно большая программа, на которой повторное использование такой элементарной абстракции, как односвязный список, окупилось бы многократно.
Т.е. КП, может быть, адекватен для каких-то программ, но для своего собственного компилятора он слишком прост!
Сегодня обнаружил, что в русском языке (а впрочем, и в английском тоже) нет стандартного способа для составления классификаций. А 3-4 этажная классификация присутствует в системе типов КП.
Оказалось, что иногда в классификациях вид подчинён роду, иногда род подчинён виду, а иногда они независимы друг от друга. Т.е., если нужно создать какую-то классификацию новых сущностей, то нет никакого стандартного способа сказать, что вот это мы назовём видом, а это - родом. Пока что взял за основу биологическую классификацию (вид меньше рода).
Вот тут немного об этом написано.
http://вече.программирование-по-русски.рф/viewtopic.php?f=2&t=84
Кроме того, придумал понятие «прообъект» для обозначения тех образов объектов, которыми оперирует компилятор. Его нужно отличать от собственно «объекта», живущего во время выполнения, потому что это разные вещи. Я уже раньше сталкивался с ситуацией, что для этих вещей нет стандартных названий, и что это мешает думать. Не знаю, кто как, а я склонен отождествлять объект и прообъект, и из-за этого возникают ошибки в рассуждениях. Сегодня ещё раз глянул в пару мест и таких названий не нашёл. Если кто-то знает, как должно всё это правильно называться, то буду рад ознакомиться.
Также нужно отличать типы времени компиляции (у меня это называется типы прообъектов) и типы времени исполнения (собственно типы). Потому что тип прообъекта ANYPTR существует, а вот типа объекта ANYPTR не существует. Опять же, если кто-то знает, как это лучше назвать - прошу примеров.
Правда, я сейчас понимаю, что я сначала хотел погрузить типы объектов в иерархию для прообъектов, поэтому типы прообъектов называются у меня видами (вид я принял считать старше типа). Но это ошибка - наверное, придётся её исправить.