
- •1.Общие сведения об эвм
- •2.Мультипрограммная эвм
- •3. Представление info в эвм.
- •4.Состав аппаратных средств пк.
- •5.Программное обеспечение пк.
- •7.Понятие алгоритмического языка.
- •11,Оптимизирующие компиляторы.
- •8.Понятие о структурном подходе разработки алгоритма. Основные структуры алгоритма.
- •9.Основные проблемы, связанные с проектированием диалоговых (интерактивных) систем.
- •10. Элементы технологии программирования.
- •12.Методы структурированного программирования.
- •13.Структурное программирование с точки зрения блок-схем.
- •14.Пошаговая детализация.
- •15.Методы тестирования и отладки программ.
- •16.Модульное построение программы.
- •17.Программный модуль. Этапы обработки программ на эвм.
- •18.Загрузчики.
18.Загрузчики.
Задача системы заключается в том, чтобы ввести программу в память и начать ее выполнение с нужной команды. Данную операцию выполняют начальные загрузчики (предзагрузчики), функция которых состоит в том, чтобы ввести и запустить более длинную программу загрузки. Предзагрузчик на 1 этапе устанавливает связь с памятью ЭВМ (ОП), а затем запускает программу связи с монитором. Основное требование к предзагрузчику связано с машинизацией занимаемой памяти.
Кроме предзагрузчика любая операционная система содержит абсолютные загрузчики, т.е. системную программу для чтения записей, содержащую команды машинного языка и привязанных к абсолютным адресам ячеек памяти. Обычно абсолютный загрузчик загружается в самую верхнюю область памяти. Таким образом, предотвращается пересечение областей и других системных прикладных программ.
Редактор связи.
На практике большая программа состоит из определенного числа отдельных программных модулей, написанных в комплексе или отдельно друг от друга. Результат трансляции каждой из подпрограмм именуются объектным модулем. Программа, которая объединяет объектные модули на машинном языке и которая может быть передана загрузчику, называется редактором связи, а программа на его выходе – загрузочным модулем. В начале операции редактирования и загрузки используется следующая информация перемещающего Ассемблера: 1.Объектный код программы; 2. Данные о свойствах перемещения отдельных полей в объектном коде; 3.Относительный адрес первой команды или элементы данных в загружаемом модуле; 4.Глобальные точки входа и ссылки на внешние символы; 5.Длина загружаемого модуля.
Данная информация необходима связующему загрузчику для создания схемы загрузки. Она детализирует, какие программы должны быть загружены, какова их длина, где они размещаются в памяти ЭВМ, какие другие программы необходимы для их выполнения.
В общем виде одним из возможных вариантов объектных модулей можно представить таблицы внешних символов (словарь вн. с., CDC)$ текст программы на машинном языке; словарь перемещений (СП) – список местоположение адресных констант, которые должны быть перемещены загрузчиком.
Пусть программы А и В оттранслированы раздельно, при этом в программе А определены 2 ячейки памяти:
на которых имеются ссылки из программ А и В, а также В-подпрограмма для А, которая должна ссылаться на точку входа SUB программы В, тогда для редактора связей один из возможных форматов представления будет иметь следующий вид:
ОМПА – объектный модуль программы А; ПА-программа А; ДП-длина программы.
В каждой строке таблицы CDC имеется признак для идентификации: в 1 строке, обозначена как Р, указаны LG вместе с ее именем, во 2 и 3 строках CDC для ПА описаны как внешние символы. Для программы она является адресами (ячейками) памяти с ячейками 120 и 121. 4 строка SUBRB предназначена для ссылки на адрес ПВ, содержание ячейки памяти 180 ПА для входа в ПВ через метку SUBRB определяется во время процесса связывания. По аналогии строится ОМПВ.
Таким образом, в результате работы ПК объектный модуль настраивается на абсолютные адреса, различные модули объединяются вместе и устанавливается взаимосвязь по глобальным идентификаторам между теми модулями, которые их используют.
В результате формируется карта распределения памяти, иллюстрирующая присвоение абсолютных адресов.
Карта загрузки начинается с печати пускового адреса нижнего и верхнего предела (младшего и старшего адресов) относительно секции модуля. Далее печатаются данные о распределении памяти для каждого отдельного модуля, а именно наименование модуля, наименование секции, адрес загрузки и длина секции в битах, имена точки входа в алфавитном порядке с их абсолютными адресами. Все это позволяет пользователю ЭВМ ассемблировать программы и подпрограммы как отдельные модули, но выполнять их как одну программу. Следует отметить, что функции ПК и загрузчика совмещаются в единой системной программе, которая называется связующим загрузчиком, или компоновщиком.
Отладчики.
Проверка корректности программ, т.е. проверка соответствия их внешним спецификациям осуществляется посредством тестирования. Программы проверяются на функционирование с различными исходными данными, а затем сравниваются с эталонными значениями.
Отладка программ включает следующие этапы:
-планирование отладки
-составление тестов и заданий на отлично
-замеры времени выполнения программы
-информирование о результатах выполнения программы по исходным данным
-анализ результатов
-обнаружение ошибок и локализация неисправностей.
Существует 2 способа тестирования программ:
1.Пошаговый режим – программа выполняется покомандно, а пользователь сопоставляет содержимое памяти регистров с ожидаемыми результатами.
2.Тренировка программы – результатом тренировки программы будут данные на экране дисплея. Отслеживание выполнения программы осуществляется автоматически до тех пор, пока не будет остановлено программистом, который анализирует эти данные и обнаруживает эти ошибки.
Таким образом, для отладки прикладных программ необходима служебная программа, обеспечивающая удобное и точное выполнение отладочных операций. Такая программа называется динамической отлаживающей программой. Эта программа представляет собой редактор и супервизор одновременно.
Программа отладчика позволяет запустить программу, прервать ее выполнение в заранее определенной точке, проанализировать и изменить содержимое памяти регистров, сделать дополнение или коррекцию в работающей программе, используя 8 или 16-чный символьный код.
В состав любой отладки входят следующие команды:
1.открытие и изменение содержимого слов памяти (регистров).
2.пошвговое выполнение, когда программа пользователя реализуется команда за командой с возвратом управления отладку каждого шага.
3.прогон программы начинается с произвольного адреса и осуществляется без прерываний.
4.прогон с контрольными точками, в которых управление передается программе отладчика при выполнении команд, адреса которых указаны пользователем (список контрольных точек).
5. в поисках определенного набора бит, например, адреса, константы или команды.
Языки программирования.
Все современные ПК выполняют только те инструкции, которые задаются на машинном языке. Но большая часть программистов этим языком не пользуется, т.к. используют язык программирования (ЯП), который является соответствующим инструментом для написания различных программ. Язык Ассемблера отличается от всех остальных ЯП. Он является по сути машинным языком, но в более понятной форме. С помощью этого языка можно реализовать на 100 процентов все функции ПК.
Суть языка Ассемблера заключается в том, что программист выписывает инструкции, которые одна в одну переводятся в команды, которые используются ПК. Ассемблер эквивалентен машинному языку, т.к. каждая собственная машинная команда создается на основе некоторого числа предложений на языке Ассемблера.
Команды на машинном языке задаются 16ричными кодами почти недоступными для понимания, тогда как системы записи предложений на языке Ассеблера понятны пользователю (программисту). Программа на языке Ассемблера состоит из 3 типов предложений:
1.Это та часть, которая составляет индивидуальные команды ЭВМ, написанные в понятной для программиста форме: MOV AH, 11. Здесь каждое предложение команды переводится в эквивалентную команду.
2.Управляющие инструкции, их суть – подготовление вполне рабочей программы.
№.Позволяет автоматизировать определенные действия. Когда последовательность команд повторяется многократно, то эта последовательность заменяется макрокомандой или макросом.
Все 3 типа предложений составляют суть языка Ассемблера. Morten-утилиты – около 20 тысяч команд машинного языка. Среда типа Lotus – около 150 тысяч отдельных команд на машинном языке.
Языки высокого уровня (ЯВУ) – все, кроме Ассеблера, созданы для того, чтобы избежать утомительного и «богатого» ошибками программирования.
Все ЯВУ основаны на 2 основных принципах:
1.Суммирование большого числа команд машинного языка в одном операторе. Этот принцип аналогичен макросам Ассемблера, но применяется более широко.
2.Заключается в том, чтобы опустить детали, связанные с непосредственной работой ПК, но сосредоточить максимальное внимание на деталях решаемой задачи.
ЯВУ характеризуются тем, что каждой оператор в итоге заменяется на большее количество команд машинного языка.
Недостатки Ассемблера:
1.Написание программы на этом языке требует большого внимания и грамотности. Для этого необходимо создание большого числа команд с большим числом мелких деталей.
2.Необходимы специальные знания программирования в области АС.
Преимущества Ассемблера:
-высокая скорость выполнения программ. На сегодняшний день к ЯВУ причисляют Basic, Fortran, Pascal, C, Simula, Snobol, Fort, Lis poolog, Ada.
Преимущества ЯВУ:
-машинная независимость, что делает соответствующие программы легко адаптируемыми к новым типам ЭВМ ОС, а также несложность и удобство программирования, что позволяет сокращать сроки создания ПО.
Недостатки ЯВУ:
-пониженная эффективность объектных программ, полученных при трансляции
-меньшая универсальность.
Критерии выбора ЯП:
1.назначение разрабатываемой программы – нужна ли она временно или необходима постоянно (существует ли необходимость передачи другой организации).
2.неоходимо учесть требуемую ее работы программы.
3.ожидаемый размер программы – количество операторов (с учетом взаимодействующих модулей).
4.необходимость сопряжения программы с другими пакетами.
5.предусмотрена ли возможность переноса программы на другие типы ЭВМ.
6.основные типы данных
7.характер и уровень использования аппаратных средств.
8.возможность и целесообразность использования стандартных библиотек программ.
С точки зрения этих критериев возможность применения ЯП может сильно отличаться.
ЯП Basic.
Basic-язык интерпретирующего типа. История началась в 1963 году. Авторы – Курц и Кемепи. Первая программа на нем в 1964 году. Прототипы – Fortran (начало, шаг) (цикл for, операция step), Algol, IQSS’, CORC. Первоначально 3 оператора:
Существующие на тот период ЭВМ были как ?
ЭВМ – HP 2000
PDP-8
PDP-11.
Basic является у них базовым компонентом в памяти машин. В период с 1965 по 1971 года – авторских редакций языка Basic.
С появлением первых микроЭВМ – Альтаир 8800 – сотрудниками фирмы Mums (Б. Гейте) создана в 1976 году фирма Microsoft. В начале 70-х появилось 2 интепретатора Аллеком. В 1984 – версия Basic A, в которую введены дополнительные возможности:
-работа с окнами экрана
-обработка прерываний от ?
-выполнение из Basicа команд ОС. Развитый Basic A стал Anic Basic, который включал подпрограммы, функции с локальными и локальными переменными, расширенные библиотеки графики и музыки, алфавитно-цифровые метки.
В 1985 Курц и Кемени предложили вариант лоднфициров версии для IBM Tene Basic. Стандарт Basic принят в 1978 году институтом ANSI. До сих пор Basic постоянно развивается.
Fortran.
Один из самых древних ЯП. Появился в 1954 году – сотрудниками фирмы IBM под руководством ДЖ. Бокуса. Один из самых популярных. Стандарт Fortrana был принят в 1956 году Американским национальным институтом стандартов (ANSI). Промежуточная версия – F.77, полностью сопрягиется с Си, имеет объектную ориентацию.
Cobol.
Язык предназначен больше для текстовой обработки. Cobol – общий язык деловой ориентации, основная цель – обработка любой экономической информации. Разработан рабочей группой, созданной под ? исполнительного комитета по языкам системы обработки данных (KODA – СИЛ). Является прародителем SQL. Работы над первой версией завершились в феврале 1960 году. Синтаксически язык опирается на мало известный ЯП ФЛОУМАТИК и КОНТРАН.
Основные цели, которые преследовались при создании Cobola:
1.Сделать язык машинозависимым и приблизить его к естественному языку. (Легкочитаемость программ). Синтаксические английские предложения являются основным в Cobole. Cobol – первый язык, в котором средства описания данных соответствуют процедурным возможностям, и первый язык, в который введен тип данных – «запись», максимально описывающий любую структуру данных.
Основные особенности:
-рекурсивное описание данных
-программы развиваются на части, называемые разделами. Каждая программа состоит из 4 разделов:
1.раздел идентификация
2.раздел оборудование (среды)
3.раздел данные
4.раздел процедуры
Раздел идентификации служит для установления тождественности программы и содержит необходимые компоненты для документирования программы.
Раздел оборудования содержит данные об используемом оборудовании, в основном периферийном.
Раздел данных содержит информацию о типе и структуре данных (организация и распределение понятий и т.д.).
Раздел процедур содержит алгоритмы вычислений (библиотеку алгоритмов).
Что касается основной части программы, она может быть разбита на более простые(характерные) участки:
-секция, параграф, предложение и слово. Стандарт Cobola – в 1974 году принят ANSI. Роль Cobola огромна в становлении среды баз данных, т.к. его считают преобразованием современного (универсального языка запросов) SQL.
Simula.
Это прародитель языка GPSS – универсального решателя задач – язык моделирования.
Язык происходит от английского слова «simulation» - моделирование. Язык создан на основе Simula1 и Simula67. Язык разработан в норвежском компьютерном центре (У. Дан, К. Ньюгард) в 1964 году. Язык Simula предназначается для моделирования систем с дискретными процессами (событиями), т.е. систем, представленных последовательностью сменяющих друг друга мгновенных событий, отражающих реальный масштаб времени.
Термин «моделирование» (основоположник Х. Дедал) определен в 1966 году как процесс представления динамической системы адекватной моделью для получения информации об этой системе путем проведения экспериментов над моделью.
Цели, которые были поставлены разработчиками языка моделирования, сводились к следующему:
1.Предоставить в распоряжение исследователя, строящего модель системы, концептуальную основу для много и четкого мышления.
2.предоставить средства для описания динамических модулей.
3.облегчить процесс программирования.
Применение языка Simula заключается в том, чтоб отождествить компоненты данной системы с соответствующими языковыми единицами, ? их на языке принятых понятий и установить четкое соотношение между этими компонентами. Главную роль играют параллельно функционирующие процессы, выступающие в качестве компонентов моделирования систем. Они имеют свою структуру данных и программу действий. В каждый момент времени в процессе моделирования активен только 1 процесс, который может вызывать новые процессы и события. Для этой цели в языке имеются планирующие и управляющие операторы.
Одним из первых понятий «объектов» появился в языке Simula. «Объект» - экземпляр ? класса, который имеет свои собственные локальные данные и действия. В этом языке имеются элементарные операторы, позволяющие организовать выполнение программы в виде последовательности фаз объектов, такое исполнение называется квазипараллельным.
Объектная ориентация позволила отойти от традиционной схемы программирования и построить процесс программирования таким образом, в виде ряда взаимодействующих объектов. Используются понятия – класс, подклассовый элементарный язык Simula опередил время и появился на 15 лет раньше. Стандарт Simula принят в 1986 году ANSI.
Snobol.
«Символический язык». Он ориентирован на обработку строк, ЯП нечисловой информации. Информация в языке представляется словами, которые именуются строками, или цепочками: буквы, образующие цепочки,-литеры.
Создан в 1952 году в компании Bell Telephone. Выдержал несколько этапов с 1964 по 1990 года. Основные версии –6. строки и символы могут быть любой длины.
Программа, написанная на Snobole, типична по структуре для большинства ЯВУ. Программа представляет собой последовательность операторов, основные из которых операторы присвоения, операторы сопоставляются с образцом, операторы замещения и непередачи управления.
Наиболее часто встречающиеся – операторы ввода/вывода, операторы остановок. Яркий оператор Snobol – оператор сопоставления с образцом, который формально представляет собой процесс вхождения заданной строки в другую строку.
Программа в Snobole транслируется в некоторую промежуточную форму, а затем исполняется с помощью интерпретатора. Язык Snobol используется при решении задач:
-обработка текстов
-машинное моделирование
-искусственный интеллект
-обработка аналитических выражений (обратное доказательство теорем)
-конструирование трансляторов.
На сегодняшний день является базовым языком для машин баз данных.
Fort.
Создан в 1960 году. В переводе –«вперед». Создан Чарлзом Муром в конце 60-х годов – официальная версия. Основная цель создания нового языка – повышение собственной производительности. «Традиционные ЯП не обеспечивают желаемой мощности, легкости и гибкости. За 40 лет очень хороший программист может написать 40 программ, а хотелось бы гораздо больше» (Мур)
В 1971 году Мур написал программу для национальной радиоастрономии. Обсерватории штата Аризона, которые в реальном масштабе времени управляла результатом наведения 11 тон телескопа.
1971 год им же разработан компилятор, заменивший крос-ассемблер.
В 1973 году Мур и Розер основали Fort Incorporation. Фирма трактовала возможность программы и создавала различные приложения.
Основное понятие Forta – слово, под которым понимается любая последовательность символв (включая и знаки препинания). Язык имеет очень простой синтаксис. Программа воспринимается как последовательность отдельных слов, как текст отдельного печатного издания.
Семантика отдельного слова в программе на момент ее исполнения определяется либо реализацией (множеством обязательных слов, согласно существующему стандарту), либо программ, которые могут вводить новые слова. Это определение помечается специальным символом и записывается как обычная последовательность в тексте. В этом смысле Fort допускает используемые кириллицы, символьную обработку, рекурсию и работу с любыми внешними устройствами.
Особенности Forta:
-наличие стека данных, применяемого для обмена аргументами и отдельными словами функциями
-возможность работы с объектами типа «словарь», описывающего в данный момент список слов, известных систем
-динамические переключение (в момент использования) режимов, позволяющие реализовать сложные структуры памяти
-наличие 2 уровней разрешения языков с помощью определенных слов и с помощью специального слова «:»
-встроенный в Fort язык Ассемблера позволяет эффективно реализовать аппарат зависимые функции и функции сопряжения с другими системами.
Недостатки Forta:
Необычность выражений и отсутствие выражений (арифметика с плавающей точкой), отсутствие типов, трудность чтения текстов программ, трудности перевода программ на другие языки. Использование поисковой записи и необычной формы предложения – если, то, иначе. Fort нашел свое применение во многих областях науки и техники, в частности при разработки транслятора, для сбора и анализа многомерных массивов данных (из области хранилищ данных в б.д.), в системаз машинной графики, в создании активных экспертных систем для процессов моделирования и управления. Активно использовался в 1995 году в процессе французско-американского подводного аппарата, с помощью которого был обнаружен Титаник. В России на сегодняшний день существует около 8 Fort- процессоров. Официально был создан ANSI в 1983 году.
Lisp.
Впервые прозвучала информация в 1956 году. Прародитель – Дж. Макарти. На естественный язык переводится как язык обработки списка. Основные идеи восходят к 20-30-м годам 20 века, максимальную роль внес Гёдель и Черч. Первый транслятор был разработан Саймоном и Шоу к концу 50-х годов. Исследовательский прототип был написан в 1959 году Макарти со студентами. С точки зрения программирования функционального типа в основание которого положен метод лямда-исчисления, разработан Черчем в 30-х годах. Программы и данные Lispa существуют в форме символьных выражений, которые хранятся в памяти ЭВМ в виде списковых структур. Имеет дело с двумя видами объектов: атомами и списками.
Атомы – символы, используемые для идентификации объектов, которые могут быть числовыми или символьными (понятия из конкретных предметов области: треугольник, круг).
Список – последовательность из нуля и более элементов, заключенных в круглые скобки, каждый из которых является либо атомом, либо списком.
Lisp манипулирует списками с использованием 3 примитивных функций: Car, Cdr, Cons, из которых путем комбинации получаются все остальные функции обработки списка.
Функция Car. В качестве значения аргумента используется первый элемент списка. Значением аргумента функции CDR является оставшаяся часть списка без первого элемента списка. Функция Cons является собирательной и объединяет то, что функции Car и CDR разбили на части. С – содержимое адресной части регистра. CDR – уменьшаемой части регистра. Lisp – язык интерпретирующего типа.
Недостатки Lispa:
Любое списочное выражение включает большое количество скобок. В реальном времени разрабатывается Lisp, в котором аппарат реализован язык Lisp. Применяются в качестве рабочих станций. Наиболее известные фирмы: как машины БД, в частности RBas, Orokol, Inpormies. Поддерживается многими вычислительными платформами. Text Ronix, Lisp Mashines Carporation, Texac-инструмент, Xerox. Ведутся разработки Lisp-компаний с параллельной архитектурой.
Язык ADA.
Был создан в 1979 году как инверсальное средство в больших программах, связанных для решения задач реального времени. Назван в честь дочери Байрона, первого программиста. Стандарт был принят в 1989 году.
В языке определены 4 формы программных модулей: подпрограмма (основная рабочая единица программы), пакет (логическая совокупность программ или данных), задача (параллельно выполняемая часть программы), настраевыемый модуль (макросредства ЯВУ).
Конструкция языка включает:
-средства структурирования данных и операций ограничены возможности использования метод и передача управления оператору перехода. Модули обладают свойствами структурирования программных структур. Каждый модуль состоит из спецификации (описания и тела программы), что позволяет программистам вначале создавать проект программы в виде набора отдельных отрабатываемых программ, а затем собственных программ в виде тел модулей. Такая технология обеспечивает более раннее обнаружение возможных ошибок. Язык содержит средства макрогенераций в зависимости от таких параметров. Как подпрограмма, тип данных и объект-переменная. Программа на ADA предназначена для выполнения во встроенных вычислительных системах. спецификой является то, что все определяется способом разработки ADA-программ и той операционной средой, которая поддерживает данные программы. ADA-программы обычно разрабатываются на инструментальной ЭВМ, отличается от объектной непосредственно работающей системе. ADA-программа – единственный программный модуль, встроенный в ЭВМ, полностью отвечающий за действиями программы без каких-либо вспомогательных средств. Преобразование ADA-программ ? пригодны для выполнения отличаются от традиционной компиляции: редактирование связей и подключение библиотек, реализация различных семантических особенностей язык, взаимодействие между задачами и динамическое распределение памяти, простота чтения программы.
Pascal.
Получил название в честь французского математика и физика Паскаля, который в 1642 году изобрел счетную машину для арифметических операций. История создания начинается с 1965 года, когда Международная федерация по обработке информации IFIP предложение нескольких специалистов в области информатики разработать язык на базе Algola-60. Ученый Никлаус Вирт. Первая версия языка называлась Алгол-W, и хотя IFIP опровергнуло этот проект, Вирт не прекратил работу и в Швейцарии в 1968 году создал первую версию Pascalя. Спустя 2 года первый вариант компилятора. Первое описание в 1971 году, в 1975 – руководство для пользования языком.
Создавая Pascal было поставлено 2 цели:
1.Необходимо разработать язык, пригодный для обучения программирования как систематической дисциплины.
2.Реализация языка должна быть эффективной и надежной на существующих ЭВМ.
Как и Algol-60, Pascal имеет блочную структуру, в которой программы создаются из блоков, которые начинаются и заканчиваются словами begin и end. Операторы разделяются «;». Аналогично Algol-60 в языке имеется оператор перехода «go to», а оператор варианта выполняет те же функции, что и переключатель в Algol или вычисляемый оператор перехода в Fortrane. Очень гибкие и простые операторы цикла. По сути данные возможности являются переработанным оператором «for», они позволяют программистам выразить все, что необходимо в процессе решения задачи путем использования вложенных иерархических структур, представляющих композиции этих операторов.
Достоинства:
-он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких базовых конструкций можно выразить любые алгоритмы. Структурное программирование нацелено на алгоритмический аспект написания программы. Другое достоинство – это две основополагающие статьи: Ч. Хоара опубликованные в 60-х годах: 1.о структурных организациях данных; 2.аксиоматическая основа программирования для вычисления машин. 1.данные представляют собой абстракцию реальных объектов, их предпочтительно рассматривать как абстрактное образование со структурами необязательно предусмотренными в общераспространенных ЯП. 2.показано, что все программы поддаются точному анализу, основанному на строгих математических рассуждениях. В 1973 году Хоар и Вирт создали аксиоматические описания для большей части семантики Pascalя, позднее представленной в виде диаграммы языка. Следуя аксиоматической семантике язык Pascal явился первым языком, для которого имеются программные средства, позволяющие доказывать правильность написания программ.
Краткость языка, легкость программирования на нем, мобильность написанных программ, возможность эффективной реализации на нем различных приложений отличили Pascal успех и общее признание. При написании языка Pascal Виртом было введено много новшеств: 1.были изобретены синтаксические диаграммы, с помощью которых удобно представлять конструкции языка; 2.ввел в алфавит языка квадратные скобки; 3.высказал идею проблемы переносимости программ в виде так называемых Pascal-систем. Основной принцип Pascal-систем - написанные на Pascale программы транслируются в так называемый Pascal-код (машинный язык некоторой идеальной машины), а затем интерпретируются на реальные машинные языки.
Опыт эксплуатации языка выявил некоторые недостатки языка:
-в языке отсутствовали многие известные конструкции (динамические массивы, возможность задания локальных переменных, понятие отдельно транслируемого модуля, что препятствовало созданию больших программ, операция возведения в степень, возможность включения в программу участков, написанных на машинном языке). Официально стандарт на Pascal был зарегистрирован в ANSI в 1982 году.
Первый компилятор был реализован для ЭВМ CDC-6000. Наиболее распространенные версии Pascal на сегодня: Turbo Pascal, Apple Pascal, Delphi Pascal, Turbo Pascal (Borland).
Для учебных целей наиболее популярным является среда Turbo Pascal, разработанная фирмой Borland.
Язык постепенно совершенствуется, в язык включены пакеты стандартной графики, развито объектно-ориентированное программирование. Основные отличия Pascalя от машинных языков:
-Pascal обладает большими выразительными возможностями: алфавит Pascal значительно шире алфавита машинного языка – повышается наглядность текста программы.
-набор математических и логических операций, допустимых для использования не зависит от набора машинных операций и выбирается из соображений удобства формулируется алгоритм a решениях задач определенного класса
-формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать достоверно содержательный этап обработки данных
-требуемые операции задаются в удобном (понятном) виде, например, с помощью общепринятых математических обозначений
-для задания операндов операций, используемых в данном алгоритме, присваиваются индивидуальные имена, выбираемые программистом и ссылка на операнды производится путем их имен
-в Pascal может быть предусмотрено использование значительно более широкого набора типов данных по сравнению с набором машинных типов данных.
Алгоритмический язык образуют 3 его составляющие: алфавит, синтаксис, семантика.
Алфавит – это фиксированный для данного языка набор основных символов, т.е. букв алфавита, из которых должен состоять любой текст на этом языке. Никакие другие символы не допускаются.
Синтаксис – система правил, определяющих допустимые конструкции из букв алфавита. С помощью этих конструкций представляются отдельные компоненты алгоритма и сам алгоритм в целом. Таким образом, для каждой цепочки (последовательности) синтаксис позволяет ответит на основной вопрос – является ли данный фрагмент текстом на данном языке или нет.
Семантика – система правил, истолкование отдельных языковых конструкций, позволяющих (при заданных исходных данных) однозначно произвести процесс обработки данных по заданной программе.