Автор работы: Пользователь скрыл имя, 31 Января 2015 в 19:20, контрольная работа
1. Дайте определение алфавита и лексики языка программирования. Приведите пример.
2. Дайте определение синтаксиса и семантики программирования. Приведите пример.
1. Дайте определение алфавита
и лексики языка
Язык – совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования языковых единиц.
Алфавит – это набор разрешенных символов языка. Рассмотрим пример алфавита языка ПЛ/1:
Первоначальный алфавит ПЛ/1 включал 60 символов: $ @ # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / ( ) , . ' % ; : ¬ & | > < _ ? пробел
Была предусмотрена возможность работы и с более ограниченным 48-символьным алфавитом, в который не входили:
@ # ; : ¬ & | > < _ ? —
Вместо отсутствующих символов использовались дополнительные ключевые слова. В современных версиях языка разрешено использовать также строчные латинские буквы (ключевые слова можно писать и заглавными, и строчными буквами). Вместо символа ¬ (отрицание), отсутствующего в переносимом наборе символов, используют ~.
Лексика языка программирования – совокупность правил образования цепочек символов (лексем), образующих идентификаторы (переменные и метки), операторы, операции и другие лексические компоненты алфавита или несколькими. Например, операция присваивания значения в языке Паскаль – «:=»; операторные скобки в языке Паскаль – begin и end. Разница между лексикой и алфавитом, является условной. На фазе лексического анализа компилятор заменяет распознанные ключевые слова внутренним кодом (например, begin – 255, end – 256) и рассматривает их как отдельные символы.
2. Дайте определение синтаксиса и семантики программирования. Приведите пример.
Синтаксис – формальные правила образования отдельных конструкций (команд, операторов) языка из символов алфавита.
Строго соблюдайте правила правописания синтаксиса программы – это необходимо прежде всего для транслятора. Основное назначение синтаксических правил это предание однозначного смысла языковым конструкциям
Синтаксис программ в языке программирования сводится к правилам представления данных, операторов и выражений языка. Начнем с выбора абстрактного синтаксиса на примере определения небольшого, но функционально полного подмножества языка Лисп.
Конкретный синтаксис языков программирования принято представлять в виде простых БНФ (Формул Бекуса-Наура). Данные языка Лисп - это атомы, списки и более общие структуры из бинарных узлов - пар, строящихся из любых данных:
<атом> ::= <БУКВА> <конец_атома>
<конец_атома> ::= <пусто>
| <БУКВА> <конец_атома>
| <цифра> <конец_атома>
<данное> ::= <атом>
| (<данное> ... ) -- список
Семантика – смысловое содержание тех или иных синтаксических конструкций языка. Семантикой языка программирования будем называть интерпретацию (или, иначе, смысловое значение) абстрактного синтаксиса (а точнее, множества допустимых видов конструкций языка), представленное в терминах той или иной математически строгой формальной модели.
Рассмотрим пример: семантические предложения для денотатов выражений языка
Информация о работе Определение алфавита и лексики языка программирования