русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Состав языка


Дата добавления: 2013-12-23; просмотров: 2425; Нарушение авторских прав


Синтаксис языка программирования – это форма, а семантика – смысл его выражений, операторов и программных единиц.

Формальное описание синтаксиса языка строится с использованием лексем – минимальных значимых единиц-элементов текста. Лексемы, которые являются названиями конструкций языка, называются нетерминальными символами или просто нетерминалами (например, <оператор>, <число>, <условный оператор> и т. д.). Число нетерминалов равно числу правил языка. Собственные символы (символы алфавита) и лексемы языка, для которых не требуется специальное описание, называются терминальными символами или терминалами.

Алфавит языка С включает:

- прописные и строчные латинские буквы от a до z и от А до Z , а также знак подчеркивания;

- арабские цифры от 0 до 9;

- специальные символы

“ { } . | [ ] ( ) + - / % * . \ ` : ? < = > ! & # ~ ; ^ ;

- пробельные символы: пробел, символы табуляции, символы перехода на новую строку.

Терминалами являются зарезервированные слова. В языке С это:

asm else new this

auto enum operator throw

bool explicit private true

break export protected try

case extern public typedef

catch false register typeid

char float reinterpret_cast typename

class for return union

const friend short unsigned

const_cast goto signed using

continue if sizeof virtual

default inline static void

delete int static_cast volatile

do long struct wchar_t

double mutable switch while

dynamic_cast namespace template

В качестве метода формального описания синтаксиса языков программирования зачастую используют Форма Бэкуса-Наура (БНФ):

<цифра> ® 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<условный оператор> ® if <логическое выражение> then <оператор>

| if <логическое выражение> then <оператор>



else <оператор>

Синтаксическая диаграмма

 

 

Рис.4.1.

 

Лексемы текста программы языка С представлены такими категориями как специальные символы, идентификаторы, зарезервированные слова, метки, числовые константы и строковые константы. Две соседние лексемы должны отделяться друг от друга разделителями(точка, скобки, запятая, пробельные символы).

Идентификатор (имя) – это строка символов, используемая для идентификации некоторой сущности в программе (переменной, метки, подпрограммы, параметра и т.д.). Идентификаторы могут быть стандартные и пользовательские.

Стандартные идентификаторы служат для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и др. Правила построения идентификаторов:

- идентификаторы могут иметь произвольную длину, но некоторые компиляторы накладывают ограничения на длину (например в Borland C++3.1 значащими будут только первые 32 символа);

- всегда начинается буквой, за которой могут следовать буквы и цифры (символ подчеркивания считается буквой, пробелы и специальные символы недопустимы);

- прописные и строчные буквы различаются (sysop, SySoP, SYSOP – три различные имени);

- идентификаторы не должны совпадать с терминалами языка.

Синтаксическая диаграмма конструкции <идентификатор>

 

 

Рис.4.2.

 

Языки программирования интерпретируют данные как константы или переменные.

Константа - элемент данных, значение которого не изменяется в процессе выполнения программы.

Литерал представляет собой значение константы, записанное непосредственно в программе (например, в выражении 2 + 5.1*х использованы два литерала "2" и "5.1").

Поименованная константа объявляется в инструкции секции описания констант сonst.

 

Рис.4.3.

 

сonst char c='C'; // константа символьного типа

Значениями констант в языке С могут быть:

• Целые числа ( например 8, 0, 128675);

• Вещественные числа. Может использоваться формат с фиксированной точкой или формат с плавающей точкой (например а = 61.2; b = 3.14е5; c = -72Е-3);

• Шестнадцатеричные числа (например a=0xA);

• Символы. Записываются в апострофах (например Znak1 = 'd'; Znak2 = 'ф'; Znak3=‘90’);

• Строки символов. Любая последовательность символов, заключенная в кавычки (например Slovo="Здесь был Vasya").

Оперативная память разбита на сегменты – непрерывные области памяти размером 64 К (65536 байт). Начало любого сегмента отстоит от начала предыдущего на 16 байт.

Память - это совокупность 65536 перекрывающихся сегментов.Логический адрес конкретной ячейки: сегмент : смещение. Смещение – номер ячейки памяти, отсчитанный относительно той ячейки, с которой начинается сегмент. физический адрес = сегмент*10h + смещение.

Рис.4.4.

В сегменте данных (адрес хранится в регистре процессора DS) располагаются глобальные переменные и константы. Программа (последовательность команд) находится в кодовом сегменте (адрес - в регистре CS). Адрес сегмента стека - в регистре SS.

Переменной называется поименованная область в памяти компьютера, выделяемая для хранения конкретных данных, значение которой может изменяться в ходе выполнения программы. Переменные интерпретируются однозначным способом – с помощью явного указания ее типа в специальном разделе описаний. Тип соответствует количеству байт, которые должны быть выделены в сегменте данных под эту переменную в соответствии с теми значениями, которые сможет принимать переменная.

 

Рис.4.5.

 

Например;

int a; // целочисленная переменная;

char b,f; // символьные переменные;

float Start; // вещественная переменная.



<== предыдущая лекция | следующая лекция ==>
Особенности объектно-ориентированной программирования (ООП) | Основные типы данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.126 сек.