Size: a a a

Compiler Development

2020 February 23

AT

Alexander Tchitchigin in Compiler Development
Константин
На мой взгляд, это заблуждение, вызванное путаницей терминалов синтаксиса со всем синтаксисом в целом. Почему бы не определить синтаксис как программная единица = { любой символ }.  в РБНФ, а дальше обсуждать только семантику? Может потому, что синтаксис задаёт конструкции языка, определяющие его суть, а семантика, по сути - это связывание этих конструкций с конструкциями уже заданного языка, тоже записанных в согласии с синтаксисом? И без синтаксиса нечего и нечем было бы связывать?
Вопрос на засыпку: а что такое эта Ваша "суть языка" в отрыве от семантики этого языка (конструкций языка)? 😉
источник

К

Константин in Compiler Development
нет никакого отрыва
источник

AT

Alexander Tchitchigin in Compiler Development
Множество синтаксических конструкций языка (набор фич языка) определяет его "суть" только тогда, когда подразумевается известная семантика этих конструкций и семантика их взаимодествия. 😊
источник

К

Константин in Compiler Development
а известная семантика чем задаётся?
источник

AT

Alexander Tchitchigin in Compiler Development
Кстати, в языке Eiffel есть исключения и их обработка, но Вы сильно удивитесь, если знаете только про семантику исключений C++/C#/Java. 😉
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
а известная семантика чем задаётся?
Для большинства программистов - это неформальная операционная семантика, описанная в тьюториале. 😊
источник

AT

Alexander Tchitchigin in Compiler Development
Нет, насчёт того, что семантика - это "перевод" с одного формального языка на другой, я с Вами полностью согласен.
источник

К

Константин in Compiler Development
она неформальная лишь в том смысле, что сложно формализуема из-за сложного "интерпретатора". Так чем задаётся семантика языка?
источник

К

Константин in Compiler Development
Alexander Tchitchigin
Нет, насчёт того, что семантика - это "перевод" с одного формального языка на другой, я с Вами полностью согласен.
тогда ладно
источник

AT

Alexander Tchitchigin in Compiler Development
Но для одного и того же (абстрактного) синтаксиса можно предложить очень разные семантики в совершенно разных языках, поэтому для меня первична таки семантика.
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
она неформальная лишь в том смысле, что сложно формализуема из-за сложного "интерпретатора". Так чем задаётся семантика языка?
Зависит от языка. Кроме того, не операционной единой... 😃
источник

К

Константин in Compiler Development
Alexander Tchitchigin
Но для одного и того же (абстрактного) синтаксиса можно предложить очень разные семантики в совершенно разных языках, поэтому для меня первична таки семантика.
да, и я предложил один такой универсальный синтаксис для всех языков.  Почему этим не ограничиваются?
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
да, и я предложил один такой универсальный синтаксис для всех языков.  Почему этим не ограничиваются?
Простите, упустил - какой универсальный "синтаксис семантики" Вы предложили?
источник

К

Константин in Compiler Development
программная единица = { любой символ }. а дальше обсуждаем "единственно важное" - семантику
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
программная единица = { любой символ }. а дальше обсуждаем "единственно важное" - семантику
К сожалению, смысл этого предложения я не понял, простите... 😊
источник

К

Константин in Compiler Development
Зачем задаются такие сложные конструкции в "неважном синтаксисе - вкусовщине", если можно обсуждать только семантику, введя синтаксис через предложенный вариант, записанный на РБНФ?
источник

AT

Alexander Tchitchigin in Compiler Development
Ни выше, ни в данном сообщении не ясно, о каком синтаксисе идёт речь - конкретном или абстрактном?
источник

К

Константин in Compiler Development
Они все абстрактные. Неужели Вы думаете, что слово менее абстрактное, чем программная реализация?
источник

AT

Alexander Tchitchigin in Compiler Development
Поскольку абстрактный синтаксис Python и Ruby, например, почти совпадает, и они оба вместе не слишком сильно отличаются от адстрактного синтаксиса Scheme или Common Lisp, которые в свою очередь не далеко ушли от их конкретного синтаксиса. 😊
источник

AT

Alexander Tchitchigin in Compiler Development
Константин
Они все абстрактные. Неужели Вы думаете, что слово менее абстрактное, чем программная реализация?
Вы уверены, что AST не отличается от конкретного синтаксиса? Или хотя бы даже от Parse Tree?
источник