dmzlj -

топ 100 блогов dmzlj19.08.2010 Вот и первые проблемы начались. В языках с синтаксисом наличие жестко определенных типов вполне естественно --- есть синтаксические конструкции, есть типы данных, которые они порождают:

[a, b, c, ...]  ;;  список  TList(typeof(a))
(a,b,c)         ;; 3-кортеж TTuple(typeof(a), typeof(b), typeof(c))


допустим у нас язык без синтаксиса, и каждая конструкция имеет семантику вызова функции:

(list a b c d) ;; список
(tuple a b c)  ;; 3-кортеж


возникают следующие вопросы:

Если конструкторы данных --- это функции, то они должны иметь переменное количество параметров. Тогда как в определяемых функциях количество параметров может быть только фиксированным (вытекает из статической типизации).

Далее, если давать переопределять эти функции, то что происходит с типами данных, которые они возвращают? Количество основных типов, о которых знает компилятор и к которым сводятся остальные --- оно все равно фиксировано.

Даже если дать произвольно определять конструкторы, все равно должны быть какие-то вызовы, которые будут вызваны в этих конструкторах, что бы вернуть объект того или иного основного типа.

Если же не давать переопределять конструкторы данных, жестко определяя их синтаксис, то почему бы тогда не зафиксировать и остальные формы (define, let, if-then-else, etc), перекладывая проверку их корректности на парсер?

А можно еще рассматривать язык программирования как язык и API для генерации AST. Язык для генерации AST вполне может иметь семантические отличия от того языка, который представляетcя этим AST, т.е. например иметь динамическую типизацию и функции с переменным количеством параметров.

Оставить комментарий

Архив записей в блогах:
Доброе утро! Самый лучший тяжелый день выдался вчера. Дела навалились разом, и за день я намотал больше 21 километра, или 27 тыс. шагов. С другой стороны - в реале в последнее время лучше, чем в ЖЖ. А у вас бывают такие дни?) Буду рад новым читателям! Найти мой журнал просто, ...
    Надо уметь улыбаться, Когда пора уйти со сцены, Уйти, чтобы не возвращаться, Уметь не сбавлять себе цену.   Надо уметь расплатиться, ...
- chi_guene: Ввожу в Гугл «музыкальный язык» — и первая же цитата из Гаспарова. - menelik3 (заинтересованно): Да, и что он пишет? Что он не понимает этого языка? - chi_guene: «Музыкальный язык является, подобно другим языковым системам, организацией такого рода, представление которой в ...
На прошлой неделе в Москве было -25, сегодня ...
Жизнь - это сказка, и какой бы холодной и страшной она не была в конце всегда приходит Тот, Кто всё начал. И Кому не всё равно, что мы в этой сказке делаем. ...