Файл: Основы программирования на языке Pascal (Классификация языков программирования. Описание языка Pascal).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 25

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Отдельный компьютер имеет свой определенный машинный язык, ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому машинный язык является командным. Однако некоторые семейства ЭВМ имеют единый машинный язык для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

В новых модулях ЭВМ намечается тенденция к повышению внутренних языков машинно – аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.

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

Есть также языки, включающие в себя все возможности языков символического кодирования, посредством расширенного введения макрокоманд – они называются автокоды.

В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту[10].

Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется макрос (средство замены).

В основном, макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста.

Следующий вид языков – машинно–независимые языки. Это средства описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и вычислительных средств[11].


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

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

С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно – ориентированные языки. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме[12].

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнения участков программ.

Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками[13].

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

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


Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены, прежде чем переходить к какому–либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок–схемы реализаций алгоритмов решения.Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе[14].

PascalABC.NET – это система программирования и язык Pascal нового поколения для платформы Microsoft .NET. Язык PascalABC.NET содержит все основные элементы современных языков программирования: модули, классы, перегрузку операций, интерфейсы, исключения, обобщенные классы, сборку мусора, лямбда–выражения, а также некоторые средства параллельности, в том числе директивы OpenMP. Система PascalABC.NET включает в себя также простую интегрированную среду, ориентированную на эффективное обучение современному программированию.

Язык Паскаль был разработан швейцарским ученым Никлаусом Виртом в 1970 г. как язык со строгой типизацией и интуитивно понятным синтаксисом. В 80–е годы наиболее известной реализацией стал компилятор Turbo Pascal фирмы Borland, в 90–е ему на смену пришла среда программирования Delphi, которая стала одной из лучших сред для быстрого создания приложений под Windows. Delphi ввела в язык Паскаль ряд удачных объектно–ориентированных расширений, обновленный язык получил название Object Pascal. С версии Delphi 7 язык Delphi Object Pascal стал называться просто Delphi. Из альтернативных реализаций Object Pascal следует отметить многоплатформенный open source компилятор Free Pascal[15].

Создание PascalABC.NET диктовалось двумя основными причинами: устаревание стандартного языка Pascal и систем, построенных на его основе (Free Pascal), а также необходимость в современной простой, бесплатной и мощной интегрированной среде программирования.

PascalABC.NET опирается на передовую платформу программирования Microsoft.NET, которая обеспечивает язык PascalABC.NET огромным количеством стандартных библиотек и позволяет легко сочетать его с другими .NET–языками: C#, Visual Basic.NET, управляемый C++, Oxygene и др. Платформа .NET предоставляет также такие языковые средства как единый механизм обработки исключений, единый механизм управления памятью в виде сборки мусора, а также возможность свободного использования классов, наследования, полиморфизма и интерфейсов между модулями, написанными на разных .NET–языках. О том, что такое платформа Microsoft.NET, о ее преимуществах для программирования и для обучения можно прочитать здесь.


Язык PascalABC.NET близок к реализации Delphi (Object Pascal). В нем отсутствует ряд специфических языковых конструкций Delphi, некоторые конструкции изменены. Кроме этого, добавлен ряд возможностей: имеется автоопределение типа при описании, можно описывать переменные внутри блока, имеются операции +=, –=, *=, /=, методы можно описывать непосредственно в теле класса или записи, можно пользоваться встроенными в стандартные типы методами и свойствами, память под объекты управляется сборщиком мусора и не требует явного освобождения, множества set могут быть созданы на основе произвольных типов, введен операторы foreach, переменные циклов for и foreach можно описывать непосредственно в заголовке цикла, имеются обобщенные классы и подпрограммы (generics), лямбда–выражения и др.

Близким по идеологии к PascalABC.NET является язык RemObjects Oxygene (Object Pascal 21 века). Однако он сильно изменен в сторону .NET: нет глобальных описаний, все описания помещаются в класс, содержащий статический метод Main, отсутствует ряд стандартных подпрограмм языка Паскаль. Кроме того, система RemObjects Oxygene – платная и не содержит собственной оболочки (встраивается в Visual Studio и другие IDE), что практически делает невозможным ее в сфере образования[16].

Интегрированная среда PascalABC.NET обеспечивает подсветку синтаксиса, подсказку по коду (подсказка по точке, подсказка параметров подпрограмм, всплывающая подсказка по коду), форматирование текста программы по запросу, переход к определению и реализации имени, элементы рефакторинга[17].

2.2 Основы программирования на языке Pascal

Программа на языке Pascal содержит как минимум две основные части:

  • объявление данных, с которыми будут производиться некоторые действия (вычисления, вывод на экран и т.п.);
  • операторную часть, которая задает последовательность операций, выполняемых с этими данными. В Pascal она начинается словом begin. Разделителем между операторами является символ «;»

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

В Pascal могут быть использованы следующие виды данных:

  • константа – постоянная величина, имеющая имя;
  • переменная – изменяющаяся величина, имеющая имя (ячейка памяти)[18].

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

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

В программе на Pascal могут быть использованы:

  • процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности);
  • функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).

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

Стандартные типы данных. При объявлении переменных используются следующие типы данных:

  • Integer, Shortlnt, Longlnt, Word, Byte – целочисленные типы (значениями переменных этого типа могут быть только целые числа);
  • char – литерный (символьный) тип данных, предназначенный для хранения одного алфавитно–цифрового символа (буквы, цифры, знака препинания и т.п.);
  • boolean – булевский (логический) тип, имеющий два возможных значения true (истина) и false (ложь);
  • real, double, single, extended, comp – вещественные типы (в переменную такого типа можно записать вещественное число, т.е., ее значение может иметь целую и дробную часть);
  • string – строковый тип, предназначенный для хранения строки не более, чем из 255 символов;
  • pointer – указатель, переменные этого типа предназначены для хранения адреса ячейки памяти;
  • text – этот тип данных определяет текстовый файл (то есть, текст, записанный во внешней памяти и снабженный хранящимся в каталоге файлов именем)[19].

Целочисленный, литерный и булевский типы данных называют также дискретными или порядковыми (ordinal) типами. Это связано с тем, что все возможные значения каждого из этих типов можно пронумеровать и упорядочить (расположить в порядке «возрастания»). Таким образом, для значения порядкового типа можно указать предыдущее и последующее значения.

Операторная часть программы всегда начинается словом begin и заканчивается словом end.

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