Предметом нашего изучения будет структурированный текст. Например - программа на ЯП. В этом мы схожи с обычной, гуманитарной лингвистикой.
Как и в человеческом языке, в машинном мы выделяем лексику, синтаксис и семантику.
Лексика определяет слова, минимальные “осмысленные” (в кавычках, так как это не термин, а просто иллюстративное определение) единица языка - слова. В человеческом языке лексема это слово в любой грамотной форме. В машинном языке - схоже. Но мы относим к лексемам еще и служебные конструкции, не только числа, литералы и имена переменных, но и разделители и знаки операций и скобки и их аналоги (begin - end).
Разделение входного задания на последовательность лексем - называется Лексический анализ. Программа это выполняющая - Лексический анализатор или Лексер.
Синтаксис определяет уже конструкции языка, как и в человеческом. Есть словосочетания, обороты, предложения. Так и в машинном есть выражения, операторы, условия, блоки. И даже вся программа целиком - тоже синтаксический элемент. Правила объединения лексем в допустимые конструкции называются грамматика.
Разделение входного задания на синтаксические единицы, причем рекурсивное, иерархическое разделение, называется Синтаксический анализ и программа выполняющее это “Синтаксический анализатор”. Почему рекурсивное? Потому, что синтаксические единицы рекурсивно вложены одна в другую. Программа состоит из модулей, модуль состоит из объявлений и определений. Определение состоит из заголовка и тела, тело из блоков, блоки из операторов. Оператор “если” (к примеру) из условия и другого оператора. … и так далее матрёшкой.
В этом, кстати, важное отличие лексической единицы (лексемы) от синтаксической. Лексема при анализе не делится на другие лексемы. Мы не делим число на знак, целую и дробную части. Для лексера есть число целиком, или мы можем написать грамматику иначе и лексер нам отдаст последовательность: (знак, число, “.”, число, “Е”, знак, число) и мы их объединим уже на уровне СИНТАКСИСА. Это наш выбор, можем писать программу так или иначе, как хотим. Но Лексер не соединяет лексемы вместе. Лексема не делима.
бо намших. к регулярним выражениям.