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

Конспект лекций по дисциплине Информатика на тему: «Языки программирования»

Основные понятия языков программирования. Развитие языков программирования. Структуры и типы данных языка программирования. Трансляция. Компиляция и интерпретация. Эволюция и классификация языков программирования.

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

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

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

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

Эволюция языков программирования. Я.П. делят на пять поколений:

Поколение 1. Входят языки, созданные в начале 50-х гг. (машиннозависимые языки, язык Ассемблер).

Поколение 2. Конец 50-х-начало 60-х гг. (Символический ассемблер, в котором появилось понятие переменной. Возросли скорость разработки и надежность программ).

Поколение 3. 60-е гг. – 70-е гг. (Появились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Качества таких языков: относительная простота, независимость от конкретного компьютера, возможность использования мощных синтаксических конструкций. Результат – повышение производительности труда программистов.) (Кобол –для экономической области, Pascal – универсальный ЯВУ (Н.Вирт), Basic

Поколение 4. Начало 70-х гг.- по настоящее время. (Языки 4-го поколения предназначены для реализации крупных проектов, повышения их надежности и скорости создания. – Проблемно-ориентированные языки). ( C ++-объектно-ориентированный С, Java – начло 90-х гг. – компиляция в платформо-независимый байт-код)

Поколение 5. Середина 90-х гг. (Системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Языки программирования для Интернета – скрипт-языки – HTML , Perl , PHP , XML ).

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

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

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

Сущность функционального (аппликативного) программирования определена А. П. Ершовым как «. способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

Роль основной конструкции в функциональных языках играет выражение: К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из X в X, где X — множество выражений.

Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализаций на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта, рассматриваемых в данном учебном пособии.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление».

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

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

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

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

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

Транслятор с языка высокого уровня называют компилятором.

Литература: [1], с. 115-129; [2], с. 140-178.

Источник

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

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

Что такое языки программирования

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

  • Лексических – набор ключевых слов и правила их использования.
  • Синтаксических – правила написания команд и операндов языка программирования.
  • Семантических – знание смыслового значения операторов и основных конструкций языка.

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

Эволюция языков программирования шла параллельно развитию электронно-вычислительных средств.

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

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

Ассемблеры – первые языки программирования

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

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

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

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

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

Языками программирования высокого уровня являются Паскаль, Си, Фортран, Бейсик, Java.

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

Все языки высоко уровня в зависимости от типа решаемых задач подразделяются на универсальные и проблемно-ориентированные языки. Универсальные языки, такие как C++, Visual Basic, Delphi, решают задачи создания Windows-приложений. Для создания интернет приложений используются высокоуровневые языки C#, Java, J#.

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

Непроцедурные языки программирования

Класс непроцедурных языков объединяет объектно-ориентированных и декларативных языков.

Объектно-ориентированные языки программирования реализуют объектный подход, в основе которого лежит понятие класса и объекта. Текст программы, написанной на этом языке состоит из экземпляров классов и методов работы с ними. К языкам, реализующим объектный подход, относятся базовые языки Simula и SmallTalk. Современные языки программирования, как правило, реализуют объектно-ориентированную парадигму. При этом модель Simula лежит в основе языков С++, Delphi, C#, Java, а на модель SmallTalk ориентированы языки Objective-C, Python, Ruby.

В декларативном программировании не используются переменные, а решение задачи задается с помощью спецификации. К декларативным языкам можно отнести SQL – язык запросов и HTML – язык разметки гипертекста, а также языки искусственного интеллекта, такие как функциональные языки, например Lisp, и логические языки, например, Prolog.

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

Что мы узнали?

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

Источник

Читайте также:  Nice rox 600 программирование пульта
Оцените статью