
- •Кодування
- •Аналіз програми
- •1.2.1. Пробіли
- •1.2.2. Коментарі
- •1.2.3. Лексеми
- •Види лексем
- •Ідентифікатори
- •Ключові слова
- •Літерали
- •Цілочислові літерали
- •Дробові літерали
- •Логічні літерали
- •Символьні літерали
- •Рядкові літерали
- •Nullлітерал
- •Розділювачі
- •Оператори
- •Висновки
- •Доповнення: Робота з операторами
1.2.3. Лексеми
Отже, були розглянуті пробіли (в широкому розумінні цього слова, тобто всі символи, які відповідають за форматування тексту програми) і коментар, застосовуваний для ведення пояснень до коду. Пробіли з точки зору програміста потрібні для кращого розуміння і зрозумілості читання програми для подальшого розвитку. З точки зору частини компілятора, яка відповідає за лексичний аналіз, роль пробілів і коментарів – виконувати роль розділювачів лексем, причому розділювачі далі відкидаються і не впливають на компільований код. Наприклад, всі наступні приклади оголошення змінної еквівалентні:
// Використовуємо пробіл як розділювач.
intx = 3;
// тут роль розділювача виконує переведення рядка
int
x
=
3
;
// тут розділюємо знаком табуляції
int x = 3 ;
*/
* Єдиний принципово необхідний розділювач між
* назвою типу даних int і іменем змінної x
* тут описано коментар блочного типу
*/
int /**/x=3;
Зазвичай лексеми різноманітні і саме вони визначають багато властивостей мови. Розглянемо їх види більш детально.
Види лексем
Вкажемо всі види лексем в Java:
ідентифікатори (identifiers);
ключові слова (key words);
літерали (literals);
розділювачі (separators);
оператори (operators).
Розглянемо їх окремо.
Ідентифікатори
Ідентифікатори – це імена, які надаються різним елементам мови для спрощення доступу до них. Імена мають: пакети, класи, інтерфейси, поля, методи, аргументи і локальні змінні. Ідентифікатори можна записувати символами Unicode, тобто будь-якою зручною мовою. Довжина імені необмежена.
Ідентифікатори складаються з букв і цифр. Ім’я не може починатися з цифри.Java-букви, які використовуються в ідентифікаторах, цеASCII-символиA-Z(\u0041 - \u005a), a-z (\u0061 - \u007a), а також знаки підкреслювання _ (ASCIIunderscore, \u005f) і долара $ (\u0024). Знак долара використовується тільки в автоматичній генерації коду (щоб уникнути випадкового співпаданняімен), або при використанні будь-яких старих бібліотек, в яких допускалися імена з цим символом.Java-цифри формуються зі звичайнихASCII-цифр 0-9 (\u0030 - \u0039).
Для ідентифікаторів не допускається збіг з зарезервованими словами (це ключові слова, булеві літерали true іfalseі null-літералnull).Звичайно, якщо два ідентифікатори формуються з різних букв, які мають однакове зображення (наприклад, латинська і українська букви A), то вони вважаються різними.
В цій главі вже застосовувались наступні ідентифікатори:
Character, a, b, c, D, x1, x2, Math, sqrt, x, y, i, s, PI, getRadius, circle, getAbs, calculate, condition, getWidht, getHeight, java, lang, String, Комп’ютер, COLOR_RED, _, aVeryLongNameOfTheMethod
Ключові слова
abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch continue
goto package synchronized
Ключові слова goto іconst зарезервовані, але не використовуються. Це зроблено для того, щоб компілятор міг правильно відреагувати на використання цих розповсюджених в інших мовах слів. Навпаки, обидва булеві літерали true,false іnull-літерал null часто вважають ключовими словами (можливо тому, що багато засобів розробки підсвічують їх такими), однак це саме літерали.