Являются ли особенности языков программирования концепцией в семантике, синтаксисе или чем-то еще? - PullRequest
3 голосов
/ 29 марта 2011

Говоря об особенностях языков программирования, таких как Сравнение языков программирования и D Сравнительная таблица характеристик языков , мне было интересно, к какому аспекту языков относится понятие "особенности" или обсуждаются под?

Спасибо и всего наилучшего!

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Это просто интуитивное чувство, я не парень по теории языка или что-то в этом роде.Я бы сказал, что добавление функции к языку программирования означает как

  1. добавление семантики для определенных обстоятельств или конструкции (например, «выражения Is возвращают логическое значение в зависимости от того, соответствует ли тип аргумента шаблона некоторому типу в соответствии ск следующим пятидесяти правилам: ... ")
  2. определение синтаксиса, который ему принадлежит (например, добавление IsExpr : "is" "(" someKindOfExpression ")" в грамматике)
1 голос
/ 29 марта 2011

Я не думаю, что существует четкое разделение для понятия "возможностей" языка программирования, так как многие среды, такие как сборка мусора (Java) или сопоставление с образцом (Haskell), предоставляются средой выполнения. Поэтому я бы сказал, что язык программирования - грамматика - сам по себе не предоставляет никаких возможностей. Он просто определяет правила языка (синтаксис). Поскольку поведение определяется тем, как интерпретируется код (созданный грамматикой с соблюдением ее правил), особенности языка программирования являются семантическим аспектом.

1 голос
/ 29 марта 2011

Это полностью зависит от того, что вы подразумеваете под «функцией» и как она реализована.Некоторые функции, такие как дженерики Java, являются не чем иным, как синтаксическим сахаром - так что это «функция синтаксиса».Сгенерированный байт-код не подвержен влиянию универсальных шаблонов Java из-за стирания типа .Это обеспечивает обратную совместимость с пре-универсальным (например, Java 1.5) байт-кодом.

Другие языковые функции намного глубже синтаксического уровня, такие как универсальные выражения C #, которые реализованы с использованием reification для обеспечения "первоклассные" универсальные объекты .

...