Лексикален анализ Програмиране, уроци и примери

Programm.ws е сайт, където можете да четете литература за езици за програмиране, както и да видите примери за работещи програми в C ++, асемблер, pascal и много други.

Програмирането - в обичайния смисъл е процесът на създаване на компютърни програми.
В тесния смисъл (т. Нар. Кодиране) под програмиране се разбира писане на инструкции - програми - на определен програмен език (често според вече съществуващ алгоритъм - план, метод за решаване на даден проблем). Съответно хората, които правят това, се наричат ​​програмисти (на професионален жаргон, кодери), а тези, които разработват алгоритми, се наричат ​​алгоритми, специалисти по темата, математици.
В по-широк смисъл под програмиране се разбира цялата гама от дейности, свързани със създаването и поддръжката на програми - компютърен софтуер. По-точен е съвременният термин - „софтуерно инженерство“ (също иначе „софтуерно инженерство“). Това включва анализ и задаване на проблем, проектиране на програма, изграждане на алгоритми, разработване на структури от данни, писане на текстове на програми, отстраняване на грешки и тестване на програма (тестване на програма), документиране, настройка (конфигуриране), преразглеждане и поддържане.

Глава 2. Сложни структури от данни

Лексикален анализ

Целта на лексикалния анализ е да подчертае и класифицира лексеми в текста на изходната програма. Програмата, която извършва лексикален анализ, се нарича скенер или лексикален анализатор. Скенерът чете файла с изходния код на програмата символ по знак.
Пълният набор от лексеми на даден език се определя от набора от терминални символи в неговата граматика. Сред тях са изменяеми и неизменяеми жетони. Неизменяемите жетони се пишат еднакво във всяка програма. За грам-
псевдоезичните матрици са такива символи като: PROGRAM, VARIABLES, START_PROG, CON_ PROG, START_BLOCK, CON_BLOCK, ".", ";", ":", "/", REAL, INTBYTE, INT_WORD, INTDWORD, ",", ": = "," = "," + "," - "," * ", DIV, MOD," (",") "," [","] "," "," == ", ПРОЧЕТЕТЕ, ПИШЕТЕ, ЗА, ЗАВЪРШЕТЕ, ДОКАТО, НАГОРЕ, АКО, АКО, ПРЕДИ, СЛЕД, GO_TO, ПОВТОРЕТЕ. Три терминални символа са оставени „зад борда“ - ID, CH_INT, CH_REAL. Тези терминални символи съответстват на идентификатори, цели числа и реални числа. Естествено, дори в рамките на една и съща програма, те ще бъдат различни. Задачата на скенера е именно да разпознава изменяеми и неизменяеми терминални символи. От гледна точка на логиката на обработка от скенера е удобно всички терминални символи да се класифицират като един от следните класове (по отношение на нашата псевдоезикова граматика):

  • идентификатори - ID;
  • ключови думи - PROGRAM, VARIABLES, NACHPROG, CON_PROG, NACHBLOCK, CON_ BLOCK, REAL, INTJYTE, INTWORD, INT_DWORD, DIV, MOD, READ, WRITE, FOR, ADD, WHILE, DOWN, IF, IF, PRE, THEN, GO REPEAT;
  • цели числа - CHINT;
  • реални числа - CH_REAL;
  • еднобуквени разделители - ".", ",", ";", ":," + "," - "," * ","/"," (",") "," = "," [ ","] "," ";