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

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

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

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

Добавлен: 29.03.2023

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

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

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

Введение

Актуальность темы исследования. Сегодня жизнь современного общества в целом и каждого его члена в отдельности невозможно представить без повседневного использования в той или миной мере различного программного обеспечения (ПО). Огромное количество бытовых устройств начиная от «умных» розеток, выключателей, чайников и заканчивая холодильниками, телевизорами работают по заложенным в них алгоритмам, реализованным с помощью программного обеспечения. Во всех иных сферах жизнедеятельности человека информационные системы, использующие ПО, играют ещё более весомую роль: промышленные роботы, Интернет, терминалы безналичной оплаты и многое другое. Можно с уверенностью сказать, что настала эпоха, когда умение создавать качественное программное обеспечение настолько важно для общества, как когда-то умение добывать огонь.

Сложность программного обеспечения неуклонно растёт. Для более качественного и быстрого решения различного рода задач создаются всё новые языки программирования (ЯП), обладающие какими-то своими особыми преимуществами «фитчами» (от англ. features — особенность). Это позволяет эффективно создавать программные продукты для необходимых условий и задач.

Количество технологий, языков программирования, фреймворков огромно. Для каждого типа задач необходимо использовать один из многих.

Знание и понимание того в каких случаях необходимо выбрать определённую технологию, язык программирования, алгоритм является наиболее важной и актуальной задачей современного специалиста направления «Информатика и вычислительная техника».

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

Предмет исследования. Высокоуровневый язык программирования Paascal выступает предметом исследования в данной работе.

Цель работы: изучение языков программирования высокого уровня на примере ЯП Pascal, а именно: его применимости для решения определённого рода задач, способов и методов создания и исполнения программ, ключевых особенностей.

Задачи исследования. Для достижения поставленной цели в данной работе необходимо решить следующие задачи:

  1. Раскрыть смысл таких понятий, как: высокоуровневый язык программирования, компилируемые и интерпретируемые ЯП, статическая/динамическая типизация, пространство имён, объектно-ориентированное программирование.
  2. Изучить отличия в исполнении программ, написанных на компилируемых/интерпретируемых ЯП.
  3. Изучить особенности и принципы объектно-ориентированного программирования.
  4. Изучить основные принципы программирования на языке Pascal.
  5. На основе изученной информации по высокоуровневым ЯП в общем и языке Pascal, в частности, на практическом примере показать пример использования данного языка.

Основные авторы. При написании данной курсовой работы использовались труды авторов: Лутц М. [1], Бизли Д. [2], Вайсфельд М. [3] и другие.

Языки программирования

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

В отличие от естественных языков, языки программирования предназначены для того, чтобы не допускать двусмысленности и быть краткими. Перед запуском программы её текст, написанный на каком-либо ЯП, до выполнения переводится в машинный код компилятором, либо интерпретатором непосредственно во время выполнения. Иногда программы выполняются гибридным методом.

История появления языков программирования

Самая ранняя из известных программируемых машин была реализована задолго до изобретения цифрового компьютера и являлась автоматическим игроком на флейте. Она описана в девятом веке братьями Мусой и Багдадом во времена «исламского золотого века» [4]. С начала 1800 - х годов «программы» использовались для управления поведением таких машин, как ткацкие станки Жаккарда и игровые пианино [5].

В 1842-1843 годах Ада Лавлейс перевела мемуары итальянского математика Луиджи Менабре о новейшей предлагаемой Чарльзом Бэббиджем аналитической машине. В статье она добавила набор заметок, в которых подробно описана методику вычисления чисел Бернулли на аналитической машине. Она была признана историками первой в мире компьютерной программой. [6]

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

Поколения языков программирования

Все существующие языки программирования можно разделить по поколениям, в соответствии их развитию [7] (Рисунок 1).

Рисунок 1 — Поколения языков программирования

1.2.1. Первое поколение


Машинный язык — это единственный язык программирования, который компьютер может понимать напрямую без перевода. Это язык, состоящий только из единиц и нулей. Такой язык должен соответствовать специальным характеристикам определённого процессора, поэтому нет единого универсального машинного языка. Для каждого типа или семейства процессоров требуется собственный машинный язык. По этой причине машинный язык считается машинно-зависимым.

Использование машинного языка — очень утомительный, сложный и трудоемкий способ программирования, поэтому машинные языки — это языки низкого уровня. Поскольку программист должен детально указывать каждый шаг, низкоуровневый язык требует подробного представления о том, как работает ЭВМ. Чтобы упростить программирование, были разработаны более простые в использовании языки программирования. Тем не менее, программы, написанные на других ЯП должны быть переведены на машинный язык, прежде чем компьютер сможет их понять и выполнить (рисунок 2).

10101010011000101

10011010100000010

11111111101000101

Рисунок 2 — Пример кода, написанного на машинного языке

Преимущества:

  • код программы может быть быстрым и эффективным,
  • код программы может использовать определенные функции процессора, например, специальные регистры.

Недостатки:

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

1.2.2. Второе поколение

Первым шагом в упрощении и повышении эффективности разработки программного обеспечения стало создание языков программирования. Используя коды, напоминающие английский, программирование становится намного проще. Использование мнемонических кодов, таких как LDA для загрузки и STA для хранения, позволяет намного легче запоминать их, чем различные комбинации нулей и единиц. Такой код легче читать и писать (рисунок 3).

Ассемблерный код

Машинный код

LDA A

ADD #5

STA A

JMP #3

-> Транслятор ->

000100110100

001000000101

001100110100

010000000011

Рисунок 3 — Пример кода, написанного на ассемблере, и его преобразования в машинный код


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

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

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

Преимущества языков второго поколения:

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

Недостатки:

  • код программы не может быть перенесен на другие архитектуры и должен быть переписан заново.

1.2.3. Третье поколение

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

На сегодняшний день самые популярные языки программирования С, C ++, C #, Java, Pascal, являются языками третьего поколения, хотя каждый из этих языков можно дополнительно подразделить на другие категории, основанные на иных чертах.

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

Основным преимуществом языков высокого уровня является то, что их легче читать, писать и поддерживать. В конечном счете, программы, написанные на языках высокого уровня, должны быть переведены на машинный язык компилятором или интерпретатором. Пример кода программы, написанной на языке С и печатающей в стандартное устройство вывода текст «Hello World» представлен на следующем рисунке.


/* Hello World program */

#include<stdio.h>

main()

{

printf("Hello World");

}

Рисунок 4 — Пример исходного кода на языке высокого уровня

Преимущества:

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

Недостатки:

  • полученный код не может наилучшим образом использовать специфичные для процессора функции, в отличие от 1-го и 2-го поколений.

1.2.4. Четвёртое поколение

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

Декларативные языки — описывают, какие вычисления должны выполняться, а не как их выполнять. Примерами могут выступать язык SQL, Oracle Reports, CSS.

/*code to change the headings on a page to

green and the paragraphs to red and italic*/

h1 { color : #00FF00; }

p { color : #FF0000; font-style : italic }

Рисунок 4 — Пример исходного кода на декларативном языке CSS

Классификация языков высокого уровня

Многие современные языки программирования, например, такие как С++, С#, Java, Pascal на первый взгляд имеют очень много общих черт. В частности, эти сходства заключаются в синтаксисе, синтаксических конструкциях, возможностях применения парадигмы объектно-ориентированного программирования и т.д.

Главные же различия заключаются в типизации объектов и способах исполнения программ, написанных на разных языках программирования. На рисунке 5 показана классификация ЯП в соответствии с указанными выше различиями.

Рисунок 5 — Классификация высокоуровневых языков программирования

1.3.1. Компиляторы и интерпретаторы

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