Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Концепция разработки языков высокого уровня

Язык программирование (ЯПВУ) – это множество строк (последовательностей символов) некоторого алфавита удовлетворяющих правилам синтаксиса и задающих порядок вычислений в соответствии с правилами семантики.

Тип данных - диапазон значений, операции которые можно производить над данными

 

ЯПВУ:

· Система типов данных языка программирования (включает средства описания (операторы описания) данных языка программирования)

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

Ø Числовые

§ Целые

§ Действительные

ü С плавающей запятой

ü Фиксированная запятая

Ø Логические

Ø Символьные

§ Один символ

§ Строка символов

 

2. Структурные типы (типы определяемые пользователем).

Ø Массивы

Ø Записи

Ø Объединение

Ø Множества

3. Указатели

4. Абстрактный тип данных (определяем сами)

Ø Структурные типы

Ø Базовые типы

Ø Методы или функции над данными

· Средства описания действий над данными

1. Выражения

Ø Логические

Ø Арифметические

2. Операторы действия

Ø Ввод / Вывод

Ø Операторы присваивания

Ø Подпрограммы

§ Процедуры

§ Функции

Ø Операторы управления

§ Перехода

ü Условный

ü Безусловный

ü Много условный

§ Циклы

ü С постусловием

ü С пред условием

ü С пересчетом

 

 

· Дополнительные возможности языка (возможность подключения и обработки файлов)

Ø Обработка файлов

Ø Обработка исключительных ситуаций

Ø Организация параллельных вычислений

Ø Макро обработка

 

Категории языков

Все языки делятся на 4 категории:

1. Императивные языки высокого уровня (те которые разработаны с принципами Фон-Неймана)

Следовательно, имеют в своем составе следующие языковые средства:

· Операторы позволяющие организовать ту или иную структуру синтаксической единицы. Это либо главная программа (Program), либо что-либо иное.

· Язык должен иметь средства описания ячейки памяти или области ячеек памяти, а так же операторы присваивания и операторы ввода /вывода.

2. Функциональные языки

3. Логические языки

4. Языки объектно ориентированного программирования (основываются на абстрактных типах данных)

 

Классификация языков по назначению

1. Научные языки (большой математический аппарат)

2. Коммерческое (фиксированный десятичный тип, записи, символьные типы)

3. Системыные (битовые структуры, битовые операции)

4. Различные специализированные языки

 

 

Практика:

 

Два класса:

· Istream

-Cin

· Ostrean

-Count

-Cerr (поток предупреждений и ошибок)(вывод сообщений несущие критическую информацию)

-Clog (информационный поток)(сообщения при отладки)

 

 

Int a; - объявление

Int b=5; - инициализация

 

 

Система реализация языка.

Способы которые помогают преобразовать исходный код в объектный (системы реализации языка)

Существует 3 способа:

· Система компиляций (компиляторов)

Схема чистой компиляции:

Исходный код

Редактор связей
Генератор кода
Оптимизатор кода
Семантический анализатор и генератор промежуточного кода
Таблицы символов
Синтаксический анализатор (группа лексем преобразуется в синтаксическое дерево)(позволит определить к какой группе цепочек языка наша цепочка будет принадлежать)(это делается в результате построения синтаксического древа)
Лексический анализатор (программа разбивается на лексемы(минимальные синтаксическая единица, имеющая смысл))

 

 

Центральный процессор (загрузочный модуль)

 


Минусы:

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

Плюсы:

Время обработки – быстрое.

Получаем exe. (мобильность)

 

· Схема интерпретатора языка (интерпретации языка)

Исходный код
Интерпретатор(покомандная обработка, покомандное выполнение)
3 bnJldi54bWxMj8FOwzAMhu9Ie4fIk7ixdFFVttJ0QkxcuAzGxNlrvaaicaomWwtPTxAHdvTvT78/ F5vJduJCg28da1guEhDElatbbjQc3p/vViB8QK6xc0wavsjDppzdFJjXbuQ3uuxDI2IJ+xw1mBD6 XEpfGbLoF64njruTGyyGOA6NrAccY7ntpEqSTFpsOV4w2NOToepzf7Ya1v7VBG8+aHvaLbPdNzbb l8Oo9e18enwAEWgK/zD86kd1KKPT0Z259qLTkCqVRlSDSjMFIhJ/yTEm69U9yLKQ1z+UPwAAAP// AwBQSwECLQAUAAYACAAAACEAtoM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRf VHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAAAAAAAC8BAABf cmVscy8ucmVsc1BLAQItABQABgAIAAAAIQCl311p9QEAAAgEAAAOAAAAAAAAAAAAAAAAAC4CAABk cnMvZTJvRG9jLnhtbFBLAQItABQABgAIAAAAIQAKnGWF3gAAAAsBAAAPAAAAAAAAAAAAAAAAAE8E AABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABADzAAAAWgUAAAAA " strokecolor="#4579b8 [3044]">
ЦП
Данные
Результаты

 

 


Плюсы:

Каждая команда либо прошла, либо не прошла. (ошибки локализуются сразу)

Минусы:

Работает в несколько раз дольше чем предыдущая.

Нет exe.

 

· Система смешанной компиляции

Исходный код
Лексический анализатор
Синтаксический анализатор  
Генератор промежуточного кода (получаем код)
Интерпретатор
ЦП
Таблицы символов Оптимизатор

 


Минусы:

Нет exe.

Плюсы:

Более быстрое выполнение, чем в пункте 2.

 

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

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

 

Цель
Критерии
Стратегии

 


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

 

Классические критерии были до эры персональных компьютеров:

 

· Мобильность языка (связана с системой реализации языка) (язык + система реализация)

(критерий мобильности был важен из-за архитектуры платформы)

· Уровень языка определяет то, насколько просто писать программу на данном языке. Assembler + ЯПВУ

· Мощность языка определяется разнообразием задач которые можно на языке реализовать.

 

 

Современные критерии:

· Читабельность программ написанных на ЯПВУ.

· Легкость создания программ на ЯПВУ.

· Надежность языка программирования.

· Стоимость.

Эти критерии поддерживаются системой оценочных характеристик.

 

 

Цели разработки ЯПВУ (критерии 1 уровня)

 

Критерии 2 уровня Читабельность Легкость создания Надежность языка
Простота (разумное количество элементарных конструкций языка, отсутствие множественности одни и тех же средств) + + Чем проще – тем лучше. c:=c+1 c++ !плохо! +
Ортогональность (возможность комбинировать сложные языковые конструкции(описатели типов данных, управляющие конструкции) из элементарных) + + +
Многообразие управляющих структур (операторы управления – перехода, циклы и прочие) + + +
Многообразие типов и структур данных (развитая система типов данных обеспечивает надежность языка) + + +
Синтаксическая структура (предполагает: 1) Длина идентификаторов должна быть такой чтобы можно было отразить смысл объектов предметной области задачи) 2) Наличие зарезервированных слов, служебных символов упрощает понимание операторов + + +
Возможность создания подпрограмм + + +
Поддержка абстракции(нечто общее позволяющее представить нечто общее игнорировав какие-то детали) Абстракции: · Абстракция данных (переменная является абстракцией(моделью) ячейки памяти) Переменная -> Массив(один тип)->Записи(много типов) ->ячейка одна, но в ней находятся разные типы данных(они могут меняться в процессе работы программы) 2) Абстракция процесса (главными программами, подпрограммами(процедуры и функции 1)+2) = инкапсуляция(объединение данных и кода их обработки) Абстрактный Тип данных))   + +
Проверка типов(позволяет в статическом или динамическом режимах осуществлять контроль при загрузке данных тех или иных типов в ячейку ОП.)     +
Обработка исключительных ситуаций (отсутствие механизма совмещения имен (тип Union))     +
Стоимость языка(надежность это качество языка которое гарантирует обнаружение нарушения ошибок либо при компиляции либо при выполнении) определяется затраты на обучение программиста, стоимостью создания программных продуктов, затратами на компилятор, затратами на распространение языка, стоимость сопровождения продуктов написанных на данном ЯП.      

Union

{

Int a;

Float b;

Double c;

}

Объекты данных

Базовым объектом данных любого языка является переменная или ячейка памяти.

Обладает 6ю характеристиками.

· Имя - Идентификатор, под которым ячейка известна программе.

· Адрес - (типы связей 1 имя= 1 адрес, 2 ячейки = 1 имя, 2 имя = 1 ячейка)

· Содержимое переменной

· Тип данных

· Время жизни переменной (время в течении которого имя переменной связано с адресом)

<== предыдущая лекция | следующая лекция ==>
ГЛОССАРИЙ. Дифференцирование цен - установление различных цен на одинаковую продукцию вследствие ее разной себестоимости | 
Поделиться с друзьями:


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


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



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




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