Лексика языка

Лабораторная работа 1. Создание простейшей программы на языке Java.

Цель работы. Первое знакомство с языком программирования Java, средами программирования Eclipse и NetBeans.

Краткая теория по теме

Базовые конструкции языка Java

Технология Java, как платформа, изначально спроектированная для Глобальной сети Internet, должна быть многоязыковой, а значит, обычный набор символов ASCII (American Standard Code for Information Interchange, Американский стандартный код обмена информацией), включающий в себя лишь латинский алфавит, цифры и простейшие специальные знаки (скобки, знаки препинания, арифметические операции и т.д.), недостаточен. Поэтому для записи текста программы применяется более универсальная кодировка Unicode. Например, если в программу нужно вставить знак с кодом 6917, необходимо его представить в шестнадцатеричном формате (1B05) и записать: \ u1B05.

Компилятор, анализируя программу, сразу разделяет ее на:

· пробелы (white spaces);

· комментарии (comments);

· основные лексемы (tokens).

Пробелами в данном случае называют все символы, разбивающие текст программы на лексемы. Это как сам символ пробела (space, \u0020, десятичный код 32), так и знаки табуляции и перевода строки. Они используются для разделения лексем, а также для оформления кода, чтобы его было легче читать. Например, следующую часть программы (вычисление корней квадратного уравнения):

double a = 1, b = 1, c = 6; double D = b * b - 4 * a * c; if (D >= 0) { double x1 = (-b + Math.sqrt (D)) / (2 * a); double x2 = (-b - Math.sqrt (D)) / (2 * a); }

можно записать и в таком виде:

double a=1,b=1,c=6;double D=b*b-4*a*c;if(D>=0) {double x1=(-b+Math.sqrt(D))/(2*a);double x2=(-b-Math.sqrt(D))/(2*a);}

В обоих случаях компилятор сгенерирует абсолютно одинаковый код. Единственное соображение, которым должен руководствоваться разработчик, - легкость чтения и дальнейшей поддержки такого кода.

Комментарии не влияют на результирующий бинарный код и используются только для ввода пояснений к программе. В Java комментарии бывают двух видов: строчные и блочные. Строчные комментарии начинаются с ASCII-символов // и длятся до конца текущей строки, например:

int y=1970; // год рождения

Блочные комментарии располагаются между ASCII-символами /* и */, могут занимать произвольное количество строк. Кроме этого, существует особый вид блочного комментария – комментарий разработчика (/** комментарии*/). Он применяется для автоматического создания документации кода.

Лексика языка

Лексика описывает, из чего состоит текст программы, каким образом он записывается и на какие простейшие слова (лексемы) компилятор разбивает программу при анализе. Лексемы (или tokens в английском варианте) – это основные "кирпичики", из которых строится любая программа на языке Java. Ниже перечислены все виды лексем в Java:

· идентификаторы (identifiers);

· ключевые слова (key words);

· литералы (literals);

· разделители (separators);

· операторы (operators).

Идентификаторы - это имена, которые даются различным элементам языка для упрощения доступа к ним. Имена имеют пакеты, классы, интерфейсы, поля, методы, аргументы и локальные переменные. Длина имени не ограничена. Идентификатор состоит из букв и цифр. Имя не может начинаться с цифры.

Ключевые слова – специальные лексемы, зарегистрированные в системе для внутреннего использования (представлены на рисунке ниже).

Рис. 2.1. Ключевые слова Java

Литералы позволяют задать в программе значения для числовых, символьных и строковых выражений, а также null-литералов. В Java определены следующие виды литералов:

· целочисленный (integer);

· дробный (floating-point);

· булевский (boolean);

· символьный (character);

· строковый (string);

· null-литерал (null-literal).

Целочисленные (тип int занимает 4 байта, тип long – 8) литералы позволяют задавать целочисленные значения в десятеричном, восьмеричном и шестнадцатеричном виде. Запись нуля можно осуществить следующими способами:

· 0 (10-ричная система)

· 00 (8-ричная)

· 0x0 (16-ричная)

Если в конце литерала не стоит указателя на тип, то литерал по умолчанию имеет тип int.

Дробные литералы (тип float занимает 4 байта, тип double – 8) представляют собой числа с плавающей десятичной точкой. Дробный литерал состоит из следующих составных частей (по умолчанию имеет тип double):

· целая часть;

· десятичная точка (используется ASCII-символ точка);

· дробная часть;

· показатель степени (состоит из латинской ASCII-буквы «E» в произвольном регистре и целого числа с опциональным знаком «+» или «–»);

· окончание-указатель типа (D или F).

Символьные литералы. Представляют собой один символ и заключаются в одинарные кавычки ‘s’, ‘a’. Допускается запись через Unicode ‘\u0041’ – латинская буква “A”.

Строковые литералы состоят из набора символов и записываются в двойных кавычках: “символьный литерал”.

Null литерал может принимать всего одно значение: null. Это литерал ссылочного типа, причем эта ссылка никуда не ссылается.

Разделители – специальные символы, используемые в конструкциях языка “()”, “[]”, “{}”, “;”, “,”, “.”.

Операторы используются в различных операциях – арифметических, логических, битовых, операциях сравнения и присваивания.

Пример простой программы “Hello, world!” выглядит следующим образом:

public class Test { /** * Основной метод, с которого начинается * выполнение любой Java программы. */ public static void main (String args[]) { System.out.println("Hello, world!"); } }

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: