Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Языки программирования. Совокупность программ и аппаратных средств, поддерживающих деятельность по разработке программных продуктов называется системой программирования

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

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

 

Процесс преобразования текста программ записан на языке программирования.

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

Трансляторы делятся на компиляторы и интерпретаторы.

 

Исходным данным для компилятора является текст программы, записанный на языке программирования.

Результатом — файл. С последовательностью команд в кодах процессора.

 

Исходным данным для интерпретатора является отдельный оператор программы, записанный на языке программирования.

Результатом — выполнение оттранслированной отдельной команды.

Таким образом каждый запуск программы в интерпретаторе перейдет к повторной ее трансляции.

 

В большинстве систем программирования процесс трансляции происходит в 3 этапа:

1. Компиляция -перевод текста программы.

Получаемый в результате файл называется объектным модулем.

В общем случае таких файлов может быть несколько.

2. Редактирование связей.(Компоновка)

Компоновка — отдельные файлы объектных модулей связывается в единую программу.

3. Загрузка в память и исполнение:

Загрузчик настраивает адреса созданной программы на область памяти выделенной ОС и запускает эту программу.

 

Любой язык программирования в своей основе имеет:

1.Алфавит

2.Словарь

3.Грамматика языка:

* Синтаксис -совокупность правил задающих множество формальных правильных предложений.(правило построения конструкции)

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

 

Грамматику можно описать словесно. Но при описании формальных языков используются специальные средства.

 

Пример: Собака лает

Правило построения это предложения можно сформулировать следующим образом:

Предложение = подлежащие сказуемое

Подлежащие = собака || кошка

Сказуемое = лает || мурлычет

= '' | метасимволы

Синтаксические правила описывают множество правильных предложений. Любое предложение языка можно получить из начального символа последовательно применение правилом подстановки.

Рассмотренный способ описание синтаксических правил называется БНФ(Бэкус-Наурова Форма)

Кавычками помечаются символы называемые терминальными. Они являются элементами словаря языка и не требуют дальнейшего описания.

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

Всегда являются промежуточными.

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

 

S = A B

A = ''X'' | ''Y''

B = ''Z'' | ''W''

 

X Z

XW

YZ

YW

 

Совокупность метасимволы образует метоязык(язык служащий для описания синтаксиса другого языка.

В настоящее время используется РБНФ (Расширенная БНФ)

()- для группировки

[]-необязательная конструкция.

{}-Элемент расположенный внутри может появиться сколько угодно раз.

 

S = “X”A

A=”Z”|”Y”A

XZY

XZZY

XZZZY

 

Основными символами алфавита языка С++ являются:

*Прописные и строчные латинские буквы и знак подчеркивания

*Арабские цифры от 0 до 9

*Специальные знаки(«» ' {} [] () + - / * %. \?,; < = > & #! |)

*Пробельные символы(символы не изображаемые знаками на экране (пробел табуляция переход на строку)

 

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

 

Изображения значений в языке С++

Литерал — цепочка литер, служащая для представления конкретного значения в программе.

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

В языке С++ используются 4 типа литералов:

*Целочисленный

*Вещественный

*Символьный

*Строковый

 

Целое = [знак] целое_без_знака

Знак = “+” | “-”

целое_без_знака = цифра{цифра}

цифра = 0 1 2 3 4 5 6 7 8 9

 

Вещественное = [знак]вещественное_без_знака

вещественное_без_знака = [целые_без_знака] ''.'' [целые_без_знака] [[''E'' | ''e''] порядок]

порядок = целое

 

Существует еще один способ описания синтаксических правил — синтаксические диаграммы.

Целое_без_знака

 
 

 

 


число

       
 
 
   

 

 


-нетерминальный символ

 

 

- терминальный

 

Если числовой литерал начинается с символа 0, то он изображает восьмеричное число.

Начальные символы 0х — означает 16ричное число

Вещественные сила могут быть только десятичные.

Символьные константы изображаются 'A'. они занимают в памяти 1 байт

2-х символьные константы занимают 2 байта и если они начинаются с \ то используются для представления:

*кодов не имеющих графического изображения

' \a' – код звука

'\n' – переход к следующий строке

*символов ' \? “ являющихся элементами строковой константы

*любого символа с помощью его 16ричного кода

 

Последовательности символов начинающихся с \ управляющие (escape-последовательность)

 

Строковая константа — это последовательность литер ограниченная двойными кавычками.

Если в тексте программ строковые константы разделены только пробельными символами, то при компиляции они объединяются в одну строку. В конец каждого строкового литерала компилятор автоматически добавляет управляющую последовательность \0 являющийся признаком конца строки.

Строковая константа может быть пустой “”, но память выделится

Символьная не может быть пустой

 

Базовые типы данных(стандартные)

Определяя тип той или иной величины программист передает компилятору информацию, включающую:

*множество допустимых значений;

*множество допустимых операций над этими значениями;

*размер выделяемой памяти и способ представления значений;

Несколько типов считаются стандартными(базовыми), их характеристика компилятору известна и поэтому при описании той или иной переменной достаточно указать имя этого типа.

В языке С++ стандартные также называются арифметическими, так как они могут участвовать в арифметических операциях.

Int целочисленный

char символьный

bool логический тип

float вещественный тип

double вещественный с двойной точностью

 

Для уточнения внутреннего представления и диапазона значений по мимо имен употребляются модификаторы типов:

short

long

signed

unsigned

Модификатор short передает информации компилятору о том что следует выделить в поле памяти 2 байта, независимо от разрядности процессора.

Long означает что величина будет занимать 4 байта, независимо от разрядности.

По умолчанию все целочисленные считаются знаковыми, поэтому signed можно опускать.

 

Целочисленные константы по умолчанию относятся к типу int, на размер выделяемого поля памяти можно регулировать, добавляя суффиксы L или U в конце константы.

При использовании модификаторов без указания типов по умолчанию подразумевается тип int.

 

chazachter символьный тип

Под величиной символьного типа отводится поле памяти, достаточное для размещения кода любого символа.

 

Диапазон значения определяемы типом bool – два значения true и false.

В памяти компьютера false представляется как целочисленное 0. Любое другое значение расположенное в этом поле интерпретируется как true, однако если потребуется преобразование к числовому типу, то true преобразуется в 1.

 

<== предыдущая лекция | следующая лекция ==>
Вызов подпрограммы | Переменные и выражения
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 452; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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