24. Общая характеристика языков программирования. Компиляторы, интерпретаторы

Язык программирования – формальный язык общения человека с компьютером. ЯП служит для создания программ, которые при их выполнении позволяют получить конкретный результат. Выделяется три составные части ЯП: 1)Синтаксис ЯП - это совокупность правил образования правильных конструкций языка. Любой язык программирования может быть определён, как некоторое множество цепочек из некоторого непустого конечного множества символов, называемого алфавитом языка.2)Семантика ЯП - это совокупность правил и соглашений, устанавливаемых описанием языка для выявления смысла текстов на этом языке и их интерпретации человеком или автоматом; виды семантики:операционная;денотационная (математическая);дедуктивная(аксиоматическая,логическая);трансляционная и др.3)Прагматика ЯП – соотнесение объектов предметной области с реальными характеристиками решаемой задачи, вопросы времени и стоимости вычислений, удобство и наглядность представления данных.

С помощью языка программирования создается не готовая программа, а толь-ко текст программы, описывающий разработанный алгоритм. Чтобы получить ра-ботающую программу, необходимо: • либо автоматически перевести текст в машинный код (для этого служат программы-компиляторы) и затем использовать отдельно от исходного текста; • либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).

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

Законченная программа: • компактна и эффективна; • работает в сотни раз быстрее программы, выполняемой с интерпретатором; • может быть перенесена на другие компьютеры с процессором, поддержи-вающим соответствующий машинный код.

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

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

Недостатки интерпретаторов: • если оператор выполняется в программе многократно, то интерпретатор всякий раз будет выполнять его так, будто встретил впервые (программы с боль-шим объемом повторяющихся вычислений работают медленно); • для выполнения программы на другом компьютере там должен быть уста-новлен интерпретатор.

Достоинства интерпретаторов: • можно в любой момент остановить работу программы, исследовать содер-жимое памяти, организовать диалог с пользователем, выполнить сколь угодно сложные преобразования данных и при этом постоянно контролировать состояние окружающей программно-аппаратной среды (высокая надежность работы); • интерпретатор при выполнении каждого оператора проверяет множество характеристик ОС и информирует разработчика о возникающих проблемах; • интерерпретатор очень удобен для использования в качестве инструмента изучения программирования, так как позволяет понять принципы работы любого отдельного оператора языка.

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

Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня (ЯПНУ).

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

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

Hosted by uCoz