Языки программирования: понятие, классификация и общие принципы построения.

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

Насчитывается несколько сотен ЯП, классифицируемых по различным признакам. Наиболее общей является классификация языков по степени их зависимости от конкретной ПЭВМ. Различают 2 вида ЯП: — символьные языки, максимально приближенные к машинным командам конкретных ПЭВМ, или, как говорят, машинно-ориентированные(или иногда автокодами); — языки, ни в коей мере не ориентированные на конкретные ПЭВМ, или, как говорят, машинно-независимые языки. В первом случае говорят о языках низкого уровня, во втором — о языках высокого уровня.

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

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

Наряду с обычными машинными операциями, в состав машинно-ориентированных ЯП включают так называемые макрооператоры (сокращенно макро), тем самым совершенствуя их. В этом случае говорят уже о макроязыках. В качестве макрооператоров могут выступать операторы вычисления элементарных функций — синус, косинус, логарифм, и т.д.. Трансляция с макроязыка заключается в переводе обычных операторов автокода в отдельные машинные команды, а макрооператоров — в последовательность команд. Такая последовательность не вырабатывается ассемблером заново, а берется из библиотеки стандартных подпрограмм, именованных названиями соответствующих макрооператоров. Задача ассемблера — “встроить” нужные подпрограммы в тело транслируемой им программы.

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

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

Использование каждого из этих трансляторов имеет свои достоинства и недостатки. Компилятор переводит программу на машинный язык как единое целое, и при этом осуществляет не только контроль за правильностью написания отдельных операторов, но и согласованность их между собой. Однако работа компилятора отнимает достаточно много времени. Интерпретатор в отличии от компилятора намного проще в обращении, но не обеспечивает контроль за согласованность всех частей транслируемой программы. Кроме того, выполнение программы в режиме интерпретации происходит в несколько раз медленнее, чем выполнение заранее скомпилированной программы. Режим интерпретации и используют для программ , написанных на языке Бейсик, а для большинства остальных языков высокого уровня (Кобол, Фортран, PL-1) применяют компиляцию.

Среди языков высокого уровня различают процедурно- и проблемно-ориентированные. К процедурно-ориентированным языкам относятся алгоритмически универсальные языки, предназначенные для описания алгоритмов решения любых задач. Данные ЯП имеют определенную, но, в то же время, достаточно широкую проблемную направленность . Например, специализацию на процедуры вычислительного характера(Фортран, Алгол-60)), обработки деловой информации(Кобол). Проблемно-ориентированные языки, как правило, являются более специализированными и ориентированы на описание процедур узкой предметной области(например, процессов обработки трехмерных деталей на станках с программным управлением), и при этом не обязательно являются алгоритмически универсальными. В качестве примеров таких языков приведем отечественные языки КИЕВ-67 и КИЕВ-70, предназначенные для описания процессов управления электронным лучом при обработке плоской поверхности.

Какой язык программирования учить в 2019?


Похожие статьи.

Понравилась статья? Поделиться с друзьями: