2. Законспектировать лекцию, сфотографировать и выслать мне на электронную почту или ВКонтакт.
3. Прочитайте вопросы для самоконтроля, проверьте свои знания.
Тема: «Способы и языки программирования. Основные
конструкции языка Паскаль»
План.
I. Понятие программы. Способы и языки программирования
II. Основные конструкции языка Паскаль
I. Понятие программы. Способы и языки программирования
Задача программиста: вначале составить алгоритм решения задачи, а затем реализовать этот алгоритм на ЭВМ – составить программу, которая может быть исполнена компьютером.
Программа – законченная последовательность операторов языка программирования, определяющая порядок действий для решения некоторой задачи.
Способы программирования
При рассмотрении алгоритма мы указывали, что исполнитель должен получить алгоритм в той форме, которая понятна ему. Если исполнителем является компьютер, то алгоритм для него должен быть записан на том языке, который данный компьютер понимает. Возникает вопрос: какой язык понимает машина?
#1. Этапы трансляции программы в машинный код. Стандарты | Язык C для начинающих
При создании конкретного процессора разрабатывается система команд, которые может выполнить данный процессор (сложение, вычитание, умножение и т.д.). Как известно, процессор понимает информацию, представленную в виде сигналов двух видов («0» и «1»). Команды, которые выполняет процессор также кодируются последовательностью нулей и единиц. Поэтому в первые годы развития ЭВМ программы писались непосредственно на языке машины – в машинных кодах.
1) Программирование в машинных кодах. Программа представляет собой последовательность команд, записанных на языке процессора в машинных кодах.
Недостатки такого способа:
1) сложность программирования;
2) программист сам распределяет память под программу, исходные данные и результаты;
3) трудно разобраться в программе и модифицировать ее;
4) программы, написанные для одного процессора, неприменимы для другого процессора
Однако, необходимо отметить: несмотря на то, что машинным кодом программы никто давным-давно не пишет, все равно все программы записаны именно этим кодом – ничего другого процессор не понимает. Просто в наши дни машинный код пишут не программисты, а специальные программы.
Практически сразу же после возникновения первых ЭВМ стали думать о других способах программирования, которые были бы удобны для человека. Прежде всего, придумали команды процессора и адреса ячеек записывать буквами – возник способ программирования на Ассемблере.
2) Программирование на Ассемблере. Программа представляет собой последовательность команд процессора, записанных словами. Например, для операций процессора можно придумать следующие буквенные обозначения:
Программирование на ассемблере очень близко к программированию в машинных кодах. Это и хорошо, и плохо одновременно.
Достоинство: программы, написанные на ассемблере, выполняются очень быстро.
Недостатки: сложность программирования; от программиста требуется знать систему команд процессора и его устройство; программы, разработанные для одного процессора, не могут быть выполнены на компьютере с другим процессором.
Применение: для написания драйверов устройств (маленькие программы, от которых требуется высокая скорость работы)
Программирование с использованием языков высокого уровня.
Программа представляет собой текст, близкий к естественному языку человека. Языки высокого уровня используют привычную математическую символику и ограниченный набор понятных ключевых слов.
Достоинства: наглядность, универсальность – независимость от конкретного типа машины.
Примеры языков программирования: Фортран, Алгол, Кобол, Лисп, Бейсик (Basic), Паскаль (Pascal), C++.
Языки высокого уровня нужны для человека. Сам же процессор понимает только язык машинных кодов. Поэтому нужны специальные программы – переводчики с языка высокого уровня на язык машинных кодов. Такие программы получили название трансляторов (англ. translator — переводчик).
Транслятор – программа, которая переводит программу, написанную на языке высокого уровня, на язык машинных кодов.
Существует два основных видов транслятора: компиляторы и интерпретаторы.
Компиляторы переводят на машинный язык весь текст программы целиком, и только после этого программа может быть запущена на выполнение. Интерпретаторы анализируют каждый оператор в отдельности и после его перевода осуществляют немедленное его исполнение.
4) Визуальное программирование. Возникло в 90-х гг., когда компьютеры приобрели графическое управление. Используется графический метод составления программ. Программы составляются из отдельных настраиваемых компонентов.
Примеры системы визуального программирования: Visual Basic (на основе языка Basic), Delphi (на основе языка Pascal), C++ Builder, Visual C++ (на основе языка С++).
Источник: poisk-ru.ru
Трансляторы и интерпретаторы языков программирования
Конкретными исполнителями языков программирования являются трансляторы и интерпретаторы.
Транслятор — программа или техническое средство, выполняющее трансляцию программы.
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке, эквивалентную по результатам выполнения первой. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т.д.
Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом. Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.
Язык процессоров (машинный код) является низкоуровневым. Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором. Достоинство компилятора: программа компилируется один раз и при каждом выполнении не требуется дополнительных преобразований. Соответственно, не требуется наличие компилятора на целевой машине, для которой компилируется программа. Недостаток: отдельный этап компиляции замедляет написание и отладку и затрудняет исполнение небольших, несложных или разовых программ.
В случае, если исходный язык является языком ассемблера (низкоуровневым языком, близким к машинному языку), то компилятор такого языка называется ассемблером.
Другой метод реализации — когда программа исполняется с помощью интерпретатора вообще без трансляции. Интерпретатор программно моделирует машину, цикл выборки-исполнения которой работает с командами на языках высокого уровня, а не с машинными командами. Такое программное моделирование создаёт виртуальную машину, реализующую язык.
Этот подход называется чистой интерпретацией. Чистая интерпретация применяется как правило для языков с простой структурой (например, АПЛ или Лисп). Интерпретаторы командной строки обрабатывают команды в скриптах в UNIX или в пакетных файлах (.bat) в MS-DOS также как правило в режиме чистой интерпретации.
Достоинство чистого интерпретатора: отсутствие промежуточных действий для трансляции упрощает реализацию интерпретатора и делает его удобнее в использовании, в том числе в диалоговом режиме. Недостаток — интерпретатор должен быть в наличии на целевой машине, где должна исполняться программа. Также, как правило, имеется более или менее значительный проигрыш в скорости. А свойство чистого интерпретатора, что ошибки в интерпретируемой программе обнаруживаются только при попытке выполнения команды (или строки) с ошибкой, можно признать как недостатком, так и достоинством.
Существуют компромиссные между компиляцией и чистой интерпретацией варианты реализации языков программирования, когда интерпретатор перед исполнением программы транслирует её на промежуточный язык (например, в байт-код или p-код), более удобный для интерпретации (то есть речь идёт об интерпретаторе со встроенным транслятором). Такой метод называется смешанной реализацией. Примером смешанной реализации языка может служить Perl. Этот подход сочетает как достоинства компилятора и интерпретатора (бо́льшая скорость исполнения и удобство использования), так и недостатки (для трансляции и хранения программы на промежуточном языке требуются дополнительные ресурсы; для исполнения программы на целевой машине должен быть представлен интерпретатор). Также, как и в случае компилятора, смешанная реализация требует, чтобы перед исполнением исходный код не содержал ошибок (лексических, синтаксических и семантических).
По мере увеличения ресурсов компьютеров и расширения гетерогенных сетей (в том числе Интернета), связывающих компьютеры разных типов и архитектур, выделился новый вид интерпретации, при котором исходный (или промежуточный) код компилируется в машинный код непосредственно во время исполнения, «на лету». Уже скомпилированные участки кода кэшируются, чтобы при повторном обращении к ним они сразу получали управление, без перекомпиляции. Этот подход получил название динамической компиляции.
Достоинством динамической компиляции является то, что скорость интерпретации программ становится сравнимой со скоростью исполнения программ в обычных компилируемых языках, при этом сама программа хранится и распространяется в единственном виде, независимом от целевых платформ. Недостатком является бо́льшая сложность реализации и бо́льшие требования к ресурсам, чем в случае простых компиляторов или чистых интерпретаторов.
Этот метод хорошо подходит для веб-приложений. Соответственно, динамическая компиляция появилась и поддерживается в той или иной мере в реализациях Java,.NET Framework, Perl, Python.
Источник: infopedia.su
Как работает транслятор?
Трансля́ция програ́ммы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати текст программы и т. . Выходной язык называется целевым языком.
Какие черты основные задачи решает транслятор?
Любой транслятор выполняет следующие основные задачи: — анализирует транслируемую программу, в частности определяет, содержит ли она синтаксические ошибки; — генерирует выходную программу (ее часто называют объектной) на языке машинных команд; — распределяет память для объектной программы.
Какие виды трансляторов существуют?
- Адресный. Функциональное устройство, преобразующее виртуальный адрес (Virtual address) в реальный адрес памяти (Memory address).
- Диалоговый. .
- Многопроходной. .
- Обратный. .
- Однопроходной. .
- Оптимизирующий. .
- Синтаксически-ориентированный (синтаксически-управляемый). .
- Тестовый.
Какой транслятор позволяет создавать готовые программы?
Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором. Процесс компиляции как правило состоит из нескольких этапов: лексического, синтаксического и семантического анализов(англ.
Что такое компилятор и транслятор?
Транслятор (англ. translator — переводчик) — это программа-переводчик. . Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Что такое транслятор компилятор интерпретатор?
Трансляторы делятся на два класса: компиляторы и интерпретаторы. Компилятор переводит весь исходный модуль на машинный язык. . Интерпретатор последовательно переводит на машинный язык каждый оператор исходного модуля и сразу же выполняет его.
Какие четыре основные задачи решают транслятор?
- лексический анализ;
- синтаксический анализ;
- семантический анализ;
- создание на основе результатов анализов промежуточного кода;
- оптимизация промежуточного кода;
- создание объектного кода, в данном случае машинного.
Что такое трансляция программы в чем отличие компиляторов и интерпретаторов?
Интерпретатор берет одну инструкцию, транслирует и выполняет ее, а затем берет следующую инструкцию. Компилятор же транслирует всю программу сразу, а потом выполняет ее. Компилятор генерирует отчет об ошибках после трансляции всего, в то время как интерпретатор прекратит трансляцию после первой найденной ошибки.
Как называют программу которая преобразует программу написанную на одном из языков?
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов.
Что такое интерпретатор и в чём состоит его задача?
Интерпрета́тор (англ. interpreter ıntə:’prıtə, от лат. . Интерпрета́ция — построчный анализ, обработка и выполнение исходного кода программы или запроса (в отличие от компиляции, где весь текст программы, перед запуском, анализируется и транслируется в машинный или байт-код, без её выполнения).
Что такое компиляция простыми словами?
Компиляция (программирование) — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера), выполняемая компилятором.
Что обеспечивает перевод программы на машинный код?
Компилятор — это обслуживающая программа, выполняющая трансляцию на машинный язык программы, записанной на исходном языке программирования. Также как и ассемблер, компилятор обеспечивает преобразование программы с одного языка на другой (чаще всего, в язык конкретного компьютера).
Как называют программы предназначенные для перевода в машинные коды программы написанной на языке высокого уровня?
Компиля́тор – это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов..
Чем транслятор отличается от интерпретатора?
Интерпрета́тор — программа (разновидность транслятора), выполняющая интерпретацию. Таким образом, можно заключить, что компилятор преобразует исходный код к близкому к машинному коду. Интерпретатор же, позволяет выполнять некоторое представление программы, налету преобразуя в машинный код.
Как называется программа которая переводит программу с языка программирования в машинные коды?
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков программирования, в бинарный файл программы, состоящей из машинных команд, либо непосредственно выполняет действия программы.
Какие программы входят в систему программирования?
- редактор текста;
- транслятор с соответствующего языка;
- компоновщик (редактор связей);
- отладчик;
- библиотеки подпрограмм.
Источник: topobzor10.ru