
- •Лекция № 1.
- •Уровни языков программирования
- •Характерные черты языков программирования высокого уровня
- •2. Краткая история языков программирования.
- •Языки программирования для Интернет
- •3. Языки программирования (яп) как формальные языки описания алгоритмов.
- •4.Формальные средства описания яп. Язык формул Бэкуса-Наура
- •4.Технология трансляции программ. Системы программирования.
- •Зона главного меню
4.Технология трансляции программ. Системы программирования.
Вообще ЭВМ не рассчитана на то, чтобы понимать языки программирования высокого уровня. Аппаратура распознает и исполняет только машинный язык, программу, которая представляет собой не более чем последовательность двоичных чисел.
Появление языков программирования было связано с осознанием того факта, что перевод алгоритма, написанного на “почти” естественном языке, на машинный язык может быть автоматизирован и, следовательно, возложен на плечи машины. Здесь важно различать язык и его реализацию. Сам язык - это система записи, регламентируемая набором правил, определяющих его лексику и синтаксис. Реализация языка - это программа, которая преобразует эту запись в последовательность машинных команд в соответствии с прагматическими и семантическими правилами, определенными в языке.
Имеются два основных способа реализации языка: компиляторы и интерпретаторы. Компиляторы транслируют весь текст программы, написанной на языке программирования, в машинный код в ходе одного непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем можно исполнять без участия компилятора.
Интерпретатор в каждый момент времени распознает и выполняет по одному предложению (оператору) программы, по ходу дела превращая обрабатываемое предложение в машинную программу. Разница между компилятором и интерпретатором подобна разнице между синхронным переводом устной речи и письменным переводом текста.
В принципе любой язык может быть и компилируемым, и интерпретируемым, однако в большинстве случаев у каждого языка есть свой, предпочтительный способ реализации. Fortran, Pascal, Modula-2 в основном компилируют. Такие языки как Logo, Fort почти всегда интерпретируют. BASIC и Lisp широко используется в обеих формах. Каждый из этих способов имеет как свои преимущества, так и недостатки:
Основные преимущества компиляции:
1.Скорость выполнения готовой программы;
2.Независимость программы от системы реализации;
Основные недостатки компиляции:
1.Некоторые неудобства, испытываемые программистом при написании и отладке больших программ;
2.Сравнительно большой объем памяти, занимаемый компилятором в ОЗУ;
Понятие о системе программирования.
Рассмотрим последовательность изменений, претерпеваемую программой на пути к исполнению (в процессе компиляции).
Текст программы, написанной на языке программирования, называется исходным модулем. Достаточно сложные программы могут состоять из нескольких модулей, взаимодействующих друг с другом. Исходный модуль - это входной поток для программы - компилятора, которая
осуществляет лексический анализ входного потока ;
осуществляет синтаксический анализ входного потока;
генерирует машинный код, являющийся переводом исходного модуля на язык ЭВМ в условных адресах.
В результате этих преобразований на выходе получается объектный модуль.
Даже если мы имеем дело с одним исходным модулем, для успешного исполнения программы необходимо “связать” ее с некоторыми другими программами (например, со стандартными процедурами ввода-вывода, реализованными в языке). Эти функции выполняет программа - редактор связей. Выходной поток этой программы называют загрузочным модулем.
Современная технология применения ЭВМ требует, чтобы исполняемую программу можно было размещать в произвольном месте ОЗУ. Поэтому и загрузочный модуль написан в условных адресах. Размещением загрузочного модуля в памяти занимается программа - загрузчик.
Как правило, программы, только что написанные, содержат множество ошибок. Ошибки бывают:
а) синтаксические и лексические (выявляются на этапах лексического и синтаксического анализа). Например, ошибка y := sos(x) вместо y := cos(x) - лексическая, а ошибка в операторе
if x < 0 then y := 0; else y := 1 - синтаксическая.
б) семантические (выявляются на этапе отладки). Например, ошибка в операторе присваивания - деление на ноль: x := y; z := 1/(x - y) .
в) логические (выявляются на этапе контрольных испытаний). К логическим мы относим такие ошибки, в результате которых программа не делает того, что мы от нее ожидаем.
Для автоматизации процесса поиска и устранения семантических и отчасти логических ошибок используются специальные программы, называемые отладчиками.
Процесс преобразования текста исходного модуля в исполняемый модуль можно изобразить схематически:
Таким образом, для работы в языке программирования используются специальные пакеты программ, называемые системами программирования (СП). В состав СП входят:
Оболочка
Текстовый редактор
Компилятор
Редактор связей
Загрузчик
Отладчик
Библиотеки стандартных процедур и функций
Сервисные программы
Краткое описание системы Turbo Pascal.
Система программирования Turbo-Pascal (TP) была создана фирмой Borland. Первая версия системы, появившаяся на рынке в 1985 году, (TP v.3.0) быстро завоевала популярность благодаря хорошо реализованной идее интеграции всех частей системы в единой среде программирования. В настоящее время, как профессионалами, так и в обучении активно используется система TP v.7.0, возможности которой значительно расширены.
Вызов системы TP выполняется директивой Turbo. Весь процесс программирования выполняется в среде ИИО.
Экран Интегрированной Инструментальной Оболочки