Лекция 12. Языки моделирования и описания цифровой аппаратуры
Нам придётся сделать небольшой обзор, чтобы определить место названным в заголовке языкам.
Язык (в широком понимании этого слова) – любое средство общения между людьми, средство выражения их мыслей. Данное нестрогое определение относится к естественным (неформальным) языкам, например, английскому, русскому и т.д. Такие языки способны развиваться, а существующая их теперешняя форма является результатом длительной эволюции.
В отличие от них искусственные (формальные) языки создаются сразу целиком, преследуют более узкие цели и не способны эволюционировать. Например, в этом смысле Эсперанто – искусственный язык. К искусственным языкам относятся и языки программирования, которые являются средством общения человека с ЭВМ.
По словам Б. Хигмана понятие языка и его составляющих не поддаётся точному определению. Соглашаясь с ним, мы получаем известную свободу в выборе основных «размытых» определений, которые приводятся ниже с небольшими комментариями.
Любой язык состоит из множества элементов (словарь языка), из которых можно составлять строки (предложения) по определённым в нём правилам (правилам грамматики языка).
Для всех языков (формальных и неформальных) определено понятие алфавит, под которым подразумевают множество различных символов (букв, цифр и других условных знаков), разрешённых для применения в данном языке. Все символы алфавита расположены в определённом порядке, который не подлежит модификации.
В русском языке – это буквы: {А, Б, В, Г, … , Я}, называемые кириллицей. В английском языке алфавит составляют другие буквы: {A, B, C, D, … , Z}, называемые латиницей. Алфавит естественного русского языка именуется азбукой.
Символы алфавита формального языка тоже упорядочены: каждому символу ставится в соответствие его порядковый номер. Другими словами, каждый символ алфавита кодируется целым положительным числом в диапазоне 0…127 (например, ASCII – код, КОИ-7) или в диапазоне 0…255 (расширенный ASCII – код, КОИ-8).
Заметим, что алфавит языка программирования могут составлять не только отдельные знаки (литеры), но и некоторая их комбинация (слово), воспринимаемая как единое целое, как символ. Такие слова называются служебными, например: if, then, begin, end, function и т.д.
Из символов языка можно конструировать слова, то есть некоторые единицы словарного состава языка. Совокупность всех слов, определённых в каком-либо языке, называется словарём.
Каждое слово может существовать в нескольких формах, а порой и в нескольких смыслах, определяемых контекстом, например, стол, стола, столом, столе или коса, лук, посол, ключ, нотация. Такие формы существования слова объединяются понятием лексема.
Отсюда происходит и слово лексика, означающее совокупность слов, допустимых в данном языке. Уточним, что это определение касается естественного языка, в котором общее количество слов ограничено обычно несколькими десятками тысяч, так что имеется возможность перечислить их все и назвать эту совокупность слов словарём.
В формальных языках словарный состав может быть несоизмеримо большим. Например, в языках программирования любой идентификатор (имя), порождённый буйной фантазией программиста и правильный с точки зрения грамматики этого языка, является словом и, следовательно, должен войти в словарь языка.
Если считать, что правильный идентификатор должен начинаться с буквы и состоять только из букв латинского алфавита и арабских цифр (типичные требования для языков программирования), то при ограничении на длину идентификатора в восемь символов (более чем жёсткое требование), возможное их число составит весьма внушительную величину – ХХХХХХ.
Поэтому для формальных языков вместо того, чтобы составлять словарь невероятных размеров, проще сформулировать совокупность правил, определяющих способы построения правильных слов из символов. Именно в этом смысле интерпретируется понятие «лексика» для формальных языков.
Слова имеют определённую структуру, то есть состоят из отдельных частей (морфем), которые в русском языке называются корнем, приставкой, суффиксом и окончанием. Раздел грамматики, изучающий структуру слова, словообразование и словоизменение, называется морфологией. Изменения слов по родам, лицам, числам, временам и падежам, несомненно, обогащают язык, делают его более гибким и мощным, но одновременно лишают его однозначности истолкования.
Для формальных языков, то есть математически строгих и однозначно интерпретируемых языков, приходится вынужденно отказываться от всех этих «наворотов». Иначе говоря, слово, определённое в данном тексте (в программе), не меняет своей формы, где бы оно ни находилось и в каком контексте не встречалось.
Поэтому слово в языке программирования фактически воспринимается как единое целое, и если оно правильное, то его структура уже никого не интересует. Отсюда следует, что понятие «символ» можно распространить и на все правильные слова такого языка.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.