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

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

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

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

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

·  Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1. Машинно – ориентированные языки

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

 -  высокое  качество  создаваемых   программ   (компактность   и   скорость    выполнения);

 - возможность использования конкретных аппаратных ресурсов;

 - предсказуемость объектного кода и заказов памяти;

 - для составления эффективных программ необходимо знать  систему  команд  и    особенности функционирования данной ЭВМ;

 - трудоемкость процесса составления программ ( особенно на машинных  языках    и ЯСК), плохо защищенного от появления ошибок;

 - низкая скорость программирования;

 - невозможность непосредственного использования программ,  составленных  на    этих языках, на ЭВМ других типов.

- Машинный язык является командным. Однако, некоторые семейства ЭВМ (например,  ЕС  ЭВМ,  IBM/370/  и др.) имеют единый  МЯ для ЭВМ разной  мощности.  В  команде  любого  из  них сообщается  информация  о  местонахождении  операндов  и  типе   выполняемой операции.

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

 - Автокоды

введение макрокоманд

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

Развитые автокоды получили название Ассемблеры.

- Макрос

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

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

 

   2. Машинно – независимые языки

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

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

- Проблемно – ориентированные языки

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

 Проблемных языков очень много, например:

·         Фортран, Алгол – языки, созданные для решения математических задач;

·         Simula, Слэнг - для моделирования;

·         Лисп, Снобол – для работы со списочными структурами.

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

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

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

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

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

Одним из примеров диалоговых языков является Бэйсик.

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

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

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

 

Хостинг от uCoz