Файл: Основы программирования на языке Pascal ( ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ).pdf

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

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

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

Добавлен: 01.04.2023

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

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

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

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

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

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

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

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

Интерпретируемые программы по работоспособности уступают программам прошедшим компилятор, да и без дополнительных программ они могут вообще не работать. [5, с.2]

Такие языки как: Java и С#, они стоят между интерпретируемым и компилируемым языком. То есть эти языки компилируются не в машинный язык, а в независимый машинный код низкого уровня (байт-код). После (байт-код ) чего он проходит виртуальную машину. Для того чтобы получить байт-код нужно пройти интерпретацию, хотя некоторые его части могут быть интерпретированы в машинный код сразу во время выполнения работы для её ускорения, это всё происходит по теории компиляции «на лету».

Такой подход помогает использовать плюсы как интерпретатора так и компилятора. Имеется язык под название «Форт» он имеет и интерпретатор и компилятор. Но вот уже компьютеры нового поколения, имеют на много больше способностей чтения языков программирования.

Машинно-ориентированные языки

Машинно-ориентированные языки – это язык у которого набор операторов будет работать в зависимости от того какова производительность компьютера.

Языки программирования, рассчитаны на использование всех символов ASCII, это необходимо для написания любого языка. Управляющие символы могут использоваться в ограниченном порядке, имеются исключения для следующих символов символ CR, для возврата «Каретки», горизонтальная табуляция HT, перевод строки CF.


Языка возникшие в эпоху 6-битных символов очень ограниченный набор символов. Так называемый алфавит Фортрана имеет всего 49 символов. Исключение имеет лишь язык APL, в нём имеется множество символов специализирующих какую либо функцию.

От реализации зависит использование кода на языках «Юникод», KOI8-R, это разрешается только в комментариях, строковых константах, символьных. Во время СССР был написан язык, в котором все символы состояли из русских букв, но особого признания такой язык не получил, единственное исключение для встроенного языка 1C:Предприятие.

Так как проекты по написанию языков сдерживаются международным стандартом, этим и задерживается число используемых символов. Если бы каждый писал свой код, на своём языке было бы очень сложно писать программы. [6, с.27]

Это самый лучший язык программирования, при котором задействуются все способности компьютера и его параметры:

Машинно-ориентированные языки подразделяются на классы.

Машинно-независимые языки

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

Языки подобные этому получили название «Высокоуровневых языков» программирования. Программы написанные на этом языке выполняются последовательностью оператора, согласно написанным языком. Т о есть система будет выполнять те действия которые описаны в программе для трансляции.

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

.Языки символического кодирования

Язык символического кодирования, так же относится к командным языкам. Коды представляют собой либо двоичную либо восьмеричную систему исчисления, эти коды используются для написания программ. Индикаторы заменены на коды, что помогает и облегчает написание программ, да и после легко запомнить смысл операции. [7, с.52]

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


.Автокоды

Автокод – это язык, который включает в себя все возможности программирования «языка символического кодирования», это выполняется путём введения макрокоманд - это уже называется автокод.

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

  1. Расстановка
  2. Генерирование.

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

Специальные программы помогают анализировать макрокоманду, эти программы выявляют последовательность команд и выполняют работу по их реализации. [22, с.27]

Две системы указанных выше используют тот же набор команд и являются операторами автокода.

Например язык программирования «Ассемблер» является автокодом. Программы в которых выполняются функции сервиса программируются на «Ассемблере».

Макрос

Этот язык используют для замены последовательности символов, для того чтобы описать очерёдность выполнения действий ЭВМ в более сжатую форму, это и называется «Макрос».

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

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

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

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


При записи данных, интерпретатор сканирует каждый сектор программы после чего можно будет произвести чтение, и выполнение действий. [13, с.10]

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

Макрос может работать как с программами так и с данными.

Диалоговые языки

С появлением новых как технических так и механических возможностей, программистам была поставлена задача создать программу которая обеспечила бы, оперативное взаимодействие между человеком и ЭВМ, позднее было дано название «Диалоговые языки».

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

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

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

Допустим одним из диалоговых языков является «Бэйсик».

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

Непроцедурные языки

Такие языки помогают описывать организацию данных, где обработка происходит в фиксированных алгоритмах и операционных системах которые с ними связаны.

Всё это позволяет чётко описывать как задачу так и все действия по её решению, тем самым таблицы получают функцию определения, и после чего видно какие действия могут быть выполнены в первую очередь, перед тем как преступить к выполнению. [23, с.27]

Компилятором является код который переводит всё в машинный язык. Суть компилятора заключается в том, что он читает язык программирования и переводит его на понятный машине язык. Строение программы выполняет компилятор. Если программировать на языке Турбо Бэйсик,то нужно следить за периодом прогона и периодом компилирования. Чем интерпретируемые программы, компилируемые работают от 4 до 10 раз быстрее. А если вы хорошо постараетесь то работоспособность программ увеличится в 100 раз. А так как большинство программистов работают лишь над вознёй с файлами, то не могут продемонстрировать работоспособность программы.


Табличные методы могут осваиваться без всякого труда вне зависимости от того по какой профессии вы работаете. [12, с.27]

Написанные на этом языке программы хорошо могут описывать сложные ситуации в табличном языке.

Универсальные языки

Создание универсальных языков, было необходимо для того, чтобы ими могли пользоваться не только программисты, но и широкий круг пользователей, а конкретно для коммерческих, научных и т.д. Первый универсальный язык, был написано фирмой IBM, позднее он получил название Пл/1. После него был написан язык Алгол-68, он является вторым по мощности. Этот язык позволяет работать как с числами, так и с плавающей запятой. В языке Пл/1 более развитая система которая без труда управляет форматами, что позволяет работать с полями переменной длины, с данными структуры, а так же для использования каналов связи. [3, с.27]

Компилирование в Пл/1 происходит в автоматическом режиме. В этом языке собраны многие возможности, которые есть и в таких программах как Алгола, Кобола, Фортрана, но в отличии от них в Пл/1 можно выполнить статистическое распределение памяти.

Динамическая память – это оперативная память компьютера, предоставляемая программе при ее работе. Размер динамической памяти может изменяться, потому как динамическая память может обрабатывать массивы данных больших размеров. Динамические, переменные вызываются по адресу. Чтобы вызвать ячейку, обращение идёт по имени. Переменные устанавливаются комприлятором в памяти и подставляют свои адреса ячеек и команды. С помощью указателя осуществляется обращение к динамическим переменным. Указатель – это переменная, которая в качестве своего значения содержит адрес байта памяти. [25, с.27]

Для того чтобы произвести работу с динамическими переменными нужно следующее:

Выделить память под динамическую переменную;

Инициализировать указатель;

Освободить память после использования динамической переменной. (см. рис. 1).

Рис.1.Освобождение памяти

Линейные списки относятся к динамическим структурам данных. Объекты данных могут обладать динамической структурой, если его размер изменяется в процессе выполнения программы. [24, с.36]

Операции которые мы можем делать с линейными списками:

  1. Получение доступа к списку, для анализа и изменения.
  2. Для включения нового узла.
  3. Исключение какого либо узла.
  4. Возможность объединения списка.
  5. Разбиение линейных списков.
  6. Возможность копировать линейные списки.
  7. Определение узлов в списке.
  8. Сортировка узлов в каком либо порядке.
  9. Нахождение какого либо узла.