Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 15 стр.

UptoLike

15
2. ОПРЕДЕЛЕНИЕ ЯЗЫКА. СИНТАКСИС И
СЕМАНТИКА
Прежде чем приступить к созданию компилятора, необходимо иметь
четкое и однозначное определение исходного языка.
Можно представить язык состоящим из ряда строк
(последовательностей символов). В описании языка определяется, какие
строки принадлежат этому языку (синтаксис языка), и значение этих строк
(семантика языка). Синтаксис
множество правил, которые задают
множество формально правильных предложений. Синтаксис для конечного
языка (состоящего из конечного числа строк) можно специфицировать, задав
список строк.
Строки, принадлежащие языку, обычно называется предложениями
языка. В реальных языкахбесконечное число предложений, так что их
синтаксис нельзя определит путем перечисления этих предложений.
Синтаксис очень простого языка можно
описать на естественном языке,
например – "все строки, состоящие только из 1 и 0" тогда 1111 и 1000110 –
принадлежат языку, а 1020 – нет. Однако естественным языкам свойственны
неоднозначности, поэтому для спецификации синтаксиса более сложных
языков применяется более формальный метод определения синтаксиса.
Рассмотрим, например, предложение "Кошки спят". Слово "кошки" –
подлежащее, а "спят" – сказуемое. Это предложение принадлежит языку,
который
можно описать, например, при помощи следующих синтаксических
правил:
<предложение> ::= <подлежащее><сказуемое>
<подлежащее> ::= кошки | собаки
<сказуемое> ::= едят | спят
Смысл этих трех строк таков: предложение состоит из подлежащего, за
которым следует сказуемое. Подлежащее состоит либо из одного слова
"кошки", либо из одного слова "собаки". Сказуемое состоит либо из слова
"спят
", либо из слова "едят".
                                                                       15

                2. ОПРЕДЕЛЕНИЕ ЯЗЫКА. СИНТАКСИС И
                            СЕМАНТИКА
      Прежде чем приступить к созданию компилятора, необходимо иметь
четкое и однозначное определение исходного языка.
      Можно      представить        язык   состоящим   из   ряда    строк
(последовательностей символов). В описании языка определяется, какие
строки принадлежат этому языку (синтаксис языка), и значение этих строк
(семантика языка). Синтаксис – множество правил, которые задают
множество формально правильных предложений. Синтаксис для конечного
языка (состоящего из конечного числа строк) можно специфицировать, задав
список строк.
      Строки, принадлежащие языку, обычно называется предложениями
языка. В реальных языках – бесконечное число предложений, так что их
синтаксис нельзя определит путем перечисления этих предложений.
Синтаксис очень простого языка можно описать на естественном языке,
например – "все строки, состоящие только из 1 и 0" тогда 1111 и 1000110 –
принадлежат языку, а 1020 – нет. Однако естественным языкам свойственны
неоднозначности, поэтому для спецификации синтаксиса более сложных
языков применяется более формальный метод определения синтаксиса.
      Рассмотрим, например, предложение "Кошки спят". Слово "кошки" –
подлежащее, а "спят" – сказуемое. Это предложение принадлежит языку,
который можно описать, например, при помощи следующих синтаксических
правил:
      <предложение> ::= <подлежащее><сказуемое>
      <подлежащее> ::= кошки | собаки
      <сказуемое> ::= едят | спят
      Смысл этих трех строк таков: предложение состоит из подлежащего, за
которым следует сказуемое. Подлежащее состоит либо из одного слова
"кошки", либо из одного слова "собаки". Сказуемое состоит либо из слова
"спят", либо из слова "едят".