Паскаль: лексика, вирази, семантика.
Якщо хтось скаже, що йому потрібна мова програмування, в якій достатньо лише сказати, чого він хоче, щоб було зроблено – дайте йому льодяника.
А.Перліс, 1982 р.
1. Лексика мови Паскаль та загальний вигляд програми
2. Вирази з цілими та бульовими сталими
3. Вирази та оператори
4. Семантика програми
1. Лексика мови Паскаль та загальний вигляд програми
Кожна мова починається з алфавіту – скінченної множини символів. Алфавіт мови Паскаль складають:
великі й малі латинські букви A, B, ... , Z, a, b, ..., z;
десяткові цифри 0, 1, 2, ..., 9;
інші символи, серед яких + - * / = > < . , ; : ' ( ) [ ] { } ^ (у діалектах можливі й інші – вони тут не згадуються).
З символів алфавіту складаються лексичні одиниці мови – лексеми, свого роду "цеглинки", подібні словам у природних мовах. Множина лексем мови і правил їх запису утворюють його лексику. Лексеми неподільні й самі по собі позначають деякий зміст. Мова Паскаль має п'ять видів лексем: сталі, імена, знаки операцій, роздільники й коментарі.
Сталі – це позначення чисел та інших елементів, представних у комп'ютері. Числові сталі (позначення чисел) мають вигляд, прийнятий у математиці, наприклад, 12, 3.1415926, 2.71828 тощо. Відзначимо лише, що цілу й дробову частини числа відокремлюють крапкою, а не комою. Числові й інші види сталих докладніше розглядаються далі.
Імена – це послідовності букв і цифр, що починаються з букви, наприклад, A, b52, x8z, jklmn. Великі й малі букви в іменах не різняться: Nam1, nAM1, nam1 суть те саме ім'я. Ім'я завжди позначає "щось", якийсь об'єкт, виділяючи його серед інших, тобто ідентифікуючи. Тому імена ще називаються ідентифікаторами.
Деякі імена використовуються спеціальним чином для утворення програми та її складових частин. Ці імена називаються зарезервованими, або ключовими, або службовими словами. Будемо записувати їх жирним шрифтом. Нам уже знайомі слова begin, end, program. У додатку подано службові слова стандарту мови Паскаль – це звичайні англійські слова або їх скорочення. У діалектах їх більше.
Знаки операцій – це позначення операцій, виконання яких над числами й іншими значеннями породжує нові значення. Значення, до яких застосовується операція, називаються її операндами, а породжуване значення – її результатом. Вигляд знаків операцій дуже різноманітний. Нам звичний знак "+" і не зовсім звичні знаки "div" і "<=", тобто імена й послідовності символів. Множину знаків операцій уточнимо далі.
До роздільників відносяться дужки, символи ",", ";", ":", "(", ")" (тут їх узято в лапки) та деякі інші. Ними відокремлюються лексеми та інші, більш складні елементи програми.
У програмах можна записувати додаткові пояснення – коментарі. Вони не задають ніяких дій, при трансляції пропускаються та призначені лише для того, щоб програму було легше зрозуміти. Коментар – це довільна послідовність символів, що починається символом "{", закінчується символом "}" і не містить "}" усередині. Припускається замість "{" записувати пару символів "(*", а замість "}" – пару "*)". Наприклад,
{ this is the comment (це коментар) } (* це теж *) { і це },
а це вже не коментар, а незрозуміло що}.
Коментар можна записати між будь-якими двома лексемами, проте краще цим не зловживати, а записувати їх справа від тексту програми або в окремих рядках.
Суміжні імена й сталі відокремлюються пропусками – " ". Пропуск між сусідніми лексемами не обов'язковий, якщо хоча б одна з них є роздільником, коментарем або знаком операції (не ім'ям). Наприклад, знаки операцій + або - не є іменами, а знаки div і mod – є. Тому можна написати 1+2 або 1-2, але не можна 1mod2 або 1div2.
Програма, записана мовою Паскаль, має такий загальний вигляд:
program ім'я(input, output);
послідовність означень імен
begin
послідовність операторів
end.
Перший рядок програми називається її заголовком і містить ім'я програми (ідентифікатор). Інші рядки утворюють блок програми, що складається з означень імен (їх може і не бути) і тіла begin … end. Крапка після останнього слова end обов'язкова. Наприклад,
program rrwl(input, output);
const p=3.1415927;
var r, lng : real;
begin
readln(r);
lng:=2*p*r;
writeln(lng)
end.
У цій програмі з ім'ям rrwl є два означення. Перше означає ім'я p, яким далі позначається стала 3.1415927. Слово const свідчить про те, що це означення саме сталої, а не чогось іншого. Друге означення означає імена r і lng двох змінних, про що свідчить слово var (скорочення від англійського variable – змінна). Що таке сталі та змінні, ми дізнаємось у двох наступних підрозділах. У тілі програми записано три оператори, відокремлені символом ";". Перший з них задає читання з клавіатури дійсної сталої, що позначає радіус кола, другий – обчислення довжини цього кола та запам'ятання її в змінній lng, третій – друкування на екрані сталої, що позначає довжину кола.
2. Вирази з цілими та бульовими сталими
Цілі числа створив Господь Бог, решта є справою рук людських.
Л.Кронекер
2.1. Значення та сталі
У комп'ютер закладено способи подання чисел, символів і значень "істина" й "хибність". Ми розглянемо їх докладніше в розділі 7, а поки скажемо лише, що є два способи подання чисел – один для цілих і зовсім інший для дійсних. Далі будемо ототожнювати число та його подання в комп'ютері, хоч насправді це зовсім не те саме. Отже, в комп'ютері обробляються значення чотирьох видів – цілі й дійсні числа, символи та значення "істина" й "хибність", які називаються бульовими.