· набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
· конструкции операторов задаются в удобном для человека виде;
· поддерживается широкий набор типов данных.
Существуют также как универсальные, так и специализированные языки программирования.
К языкам низкого уровня относятся языки Ассемблера. Свое название они получили от имени системной программы Ассемблер, которая преобразует исходные программы, написанные на таких языках, непосредственно в коды машинных команд. Термин «ассемблер» произошел от английского слова assembler – сборщик частей в одно целое. Частями здесь служат операторы, а результатом сборки – последовательность машинных команд. Процесс сборки называется ассемблированием.
Ассемблер машинно-зависимый язык, т. е. он отражает особенности архитектуры конкретного типа компьютера. Исходная программа, написанная на ассемблере, состоит из одного или нескольких модулей, а каждый модуль – из операторов.
Язык Ассемблера объединяет в себе достоинства языка машинных команд и некоторые черты языков высокого уровня. Ассемблер обеспечивает возможность применения символических имен в исходной программе и избавляет программистов от утомительного труда по распределению памяти компьютера для команд, переменных и констант, что неизбежно при программировании на языке машинных команд.
Ассемблер позволяет также гибко и полно использовать технические возможности компьютера, как и язык машинных команд. Транслятор исходных программ в Ассемблере проще транслятора, требующегося для языка программирования высокого уровня. На Ассемблере можно написать столь же эффективную по размеру и времени выполнения программу, как и программу на языке машинных команд. Это достоинство отсутствует у языков высокого уровня.
Данный язык часто применяют для программирования систем реального времени, технологическими процессами и оборудованием, для обеспечения работы информационно-измерительных комплексов. К таким системам обычно предъявляются высокие требования по объему занимаемой машиной памяти.
Часто язык Ассемблера дополняется средствами формирования макрокоманд, каждая из которых эквивалентна целой группе машинных команд. Такой язык называют языком макроассемблера. Применение «макстроительных» блоков и приближает язык Ассемблера к языкам высокого уровня.
Обзор языков программирования высокого уровня.
Фортран – исторически первый компилируемый язык программирования, разработанный в 1954-1958 г.г. Джимом Бекусом. Базовые принципы, заложенные в основу этого языка, впоследствии легли в основу многих других языков программирования высокого уровня.
Не отягощенный формальностями, язык Фортран оказался достаточно прост в изучении и потому нашел широкое распространение в среде ученых и инженеров. С его помощью оказалось удобно выполнять сложные научно-технические вычисления, если количество операторов не превосходит нескольких сотен. Обычно в эту категорию укладываются расчеты на прочность теплофизические, термодинамические, электротехнические и т. п. расчеты.
В последующие десятилетия язык существенно модернизировался и расширился. Его и сегодня широко применяют в названных областях техники, хотя современные версии языка отличаются универсальностью и могут использоваться и в других областях науки и техники.
Большинство крупных научно-технических программ написано на Фортране потому, что он обладает переносимостью и устойчивостью, а также благодаря наличию встроенных математических и тригонометрических функций. Неотъемлемой частью любой прикладной программы на языке Фортран является расширенная графическая библиотека, позволяющая использовать различные графические данные и изображения.
Кобол – компилируемый язык программирования для «делового» применения. Этот язык программирования был разработан в 1959-1961 г.г. прежде всего для исследований в экономической сфере. Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения.
О программах на Коболе, основанных на широком использовании английского языка, говорят, что они понятны даже тем, кто не владеет Коболом, поскольку тексты на этом языке программирования не нуждаются в каких-либо специальных комментариях. Такие программы принято называть самодокументирующимися.
К числу других плюсов Кобола относят его структурированность. Довольно мощные компиляторы с этого языка разработаны для персональных компьютеров. Некоторые из них столь эффективны, что программу, отлаженную на персональном компьютере, нетрудно перенести на большие ЭВМ.
Перечисляя недостатки языка, нельзя не вспомнить о том, что на Коболе можно запрограммировать лишь простейшие алгебраические вычисления. Для инженерных расчетов этот язык не годится.
Еще одной причиной, сдерживающей развитие языка, является наличие в США отраслевого комитета, вырабатывающего стандарты, за соблюдением которых следит правительственная комиссия. Как это всегда бывает в подобных случаях, фирмы, занимающиеся разработкой программного обеспечения, не торопятся подгонять свои заготовки к жестким требованиям комиссии, отсутствует конкуренция, а в итоге проигрывает распространение языка.
Алгол – компилируемый язык программирования, впервые опубликованный в 1960 г.
От языка Фортран Алгол отличался значительно более строгими правилами синтаксиса, что позволило создавать с его помощью программы больших размеров, но вызвало существенные сложности в практическом применении для решения повседневных задач. Поэтому Алгол нашел применение не в инженерных, а в научных кругах, в первую очередь среди специалистов по прикладной математике, теоретической и экспериментальной физике. В этих сферах он использовался, пока его не сменил более удобный и не менее строгий язык Паскаль.
Паскаль – компилируемый язык программирования, созданный в 1968-1970 г.г. в Швейцарском Федеральном институте технологии в Цюрихе Никласом Виртом.
В основу языка Паскаль были положены принципы, впервые представленные Алголом, но правила синтаксиса были несколько упрощены, и язык получил большую популярность. Особенно широкое распространение языка началось после 1984 г., когда был представлен удобный и эффективный компилятор TurboPascal.
Язык Паскаль впервые ввел некоторые принципиально новые типы данных и подвел программистов к понятию о структурном программировании, что сказалось на самом стиле разработки программ. С распространением этого языка впервые появилось понятие о программировании, как о проектировании программ, которое в дальнейшем было развито другими языками и системами программирования.
Достоинства языка Паскаль:
· простота языка позволяет быстро его осваивать и создавать алгоритмически сложные программы;
· развитые средства представления структур данных обеспечивают удобство работы как с числовой, так и с символьной и битовой информацией;
· возможность структурного программирования, что делает программу наглядной и дает хорошие возможности для разработки и отладки;
· наличие специальных методик создания трансляторов с Паскаля упростило их разработку и способствовало широкому распространению языка;
· возможность создавать достаточно сложные и мобильные (т. е. легко переносимые на другие PC) программы.
Сегодня Паскаль является одним из трех основных языков программирования. Строгость и четкость делают его почти идеальным для академического изучения. Этот язык считается базовым во многих неспециализированных высших учебных заведениях и университетах мира.
Бейсик – интерпретируемый язык, хотя существуют некоторые версии, для которых имеются компиляторы. Он был создан в 1963 г. при непосредственном участии в его разработке американцев Джона Кемени и Томаса Курца.
Данный язык программирования считается простейшим. В принципе, Бейсик создавался в качестве учебного языка, средствами которого легко можно представить принципы создания алгоритмов.
Однако простота языка программирования оборачивалась, особенно в ранних версиях, трудностями структурирования. Кроме того, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять эффективные и в то же время короткие программы.
Одно из удобств Бейсика состоит в небольшом размере интерпретатора: существуют реализации, в которых он занимает всего несколько кБайт. В простейших 8-разрядных компьютерах это свойство используют для встраивания интерпретатора в микросхему постоянного запоминающего устройства, и тогда компьютер сразу при включении готов к исполнению команд и программ Бейсика (не надо ничего загружать).
Язык Бейсик хорошо подходит для алгоритмического программирования. С его помощью можно создавать программы длиной до 100-200 операторов, но для более крупных проектов он не подходит, поскольку становится трудно следить за непрерывно возникающими связями между отдельными частями программы.
Сотрудник фирмы BellLabsДенис Ритчи создал язык Си в 1972 г. во время совместной работы с Кеном Томпсоном, как инструментальное средство для реализации операционной системы Unix, однако популярность этого языка быстро переросла рамки конкретной операционной системы и конкретных задач системного программирования. В настоящее время любая инструментальная и операционная система не может считаться полной, если в ее состав не входит компилятор языка Си.