Пока "µForth" на данном форуме не устаканилось, буду использовать сей термин а-ля namespace С++
...
В данный момент в голове вопрос "чего делать с модернизацией языка"?
На пальцах:
В версии 1.8 "языка" слово SEND снимает со стека два значения и производит деление.
В версии 2.0 "языка" слово SEND снимает со стека два значения и производит деление с округлением.
Как нам собрать (интерпретировать) модуль, предназначенный для версии 1.8 в реализации 2.0?
Берем "классику" типа Qt. На этапе компиляции вылетают варнинги типа несоответствие типа. Иными словами, то части функций нет, то аргументы не те. И то это, чисто формально ....
А если в версии слова AGE аргументом будет сперва дата рождения, а потом возраст в годах? Типы одинаковые - но трактация и обработка разные должны быть!
Вощем в будущем языке "µForth" хочу ввести понятие "версия слова". Это будет означать следующее:
- Каждый модуль будет иметь сигнатуру версии для которой писался
- Будет вестись "реестр изменений", относительно которого будут вычисляться "потенциально опасные" слова
- Слова можно будет маркировать версиями
- После адаптации (все слова последней версии) - можно будет править сигнатуру модуля на последнюю
Критикуйте и предлагайте, вэлком!
Пока "µForth" на данном форуме не устаканилось, буду использовать сей термин а-ля namespace С++ :) ...
В данный момент в голове вопрос "чего делать с модернизацией языка"?
На пальцах:
В версии 1.8 "языка" слово SEND снимает со стека два значения и производит деление.
В версии 2.0 "языка" слово SEND снимает со стека два значения и производит деление с округлением.
Как нам собрать (интерпретировать) модуль, предназначенный для версии 1.8 в реализации 2.0?
Берем "классику" типа Qt. На этапе компиляции вылетают варнинги типа несоответствие типа. Иными словами, то части функций нет, то аргументы не те. И то это, чисто формально ....
А если в версии слова AGE аргументом будет сперва дата рождения, а потом возраст в годах? Типы одинаковые - но трактация и обработка разные должны быть!
Вощем в будущем языке "µForth" хочу ввести понятие "версия слова". Это будет означать следующее:
[list]
[*]Каждый модуль будет иметь сигнатуру версии для которой писался
[*]Будет вестись "реестр изменений", относительно которого будут вычисляться "потенциально опасные" слова
[*]Слова можно будет маркировать версиями
[*]После адаптации (все слова последней версии) - можно будет править сигнатуру модуля на последнюю[/list]
Критикуйте и предлагайте, вэлком! :)