Характеристика алгоритмических языков

История развития языков программирования, их особенности и назначение. Универсальный язык программирования COBOL. Развитие средств программирования. Универсальный код символических инструкций BASIC и сущность алгоритмического языка программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 11.01.2010
Размер файла 46,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Содержание

Введение

1. История развития языков программирования

1.1 Универсальный язык программирования COBOL

1.2 Алгоритмический язык программирования Алгол

1.3 Универсальный код символических инструкций BASIC"а

1.4 Алгоритмический язык Паскаль

2. Развитие средств программирования

Заключение

Литература

Введение

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

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

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

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

Машинный язык - это такой язык, который компьютер воспринимает непосредственно, то есть это язык машинных команд данной модели компьютера. А мы уже знаем, что ЭВМ "понимают" только язык двоичных знаков: нулей и единиц.

1. История развития языков программирования

С 1954 годов группа инженеров всем известной (теперь) компании IBM под руководством Джона Бекуса занималась созданием компилятора для Fortran. Эти работы велись более 2-х лет и, в конце концов, привели к созданию нового языка. Fortran - это сокращение от двух английских слов FORmula TRANslator - что переводится как "транслятор формул". Как видно из названия, первоначально язык создавался с целью использования при математических расчетах. Он предназначался для написания программ, используемых при решении прикладных технических задач. Основу языка составляли арифметические операторы, соответствующие по своему синтаксису традиционной записи математических выражений. В дополнение к этому в языке имелись средства разбиения сложных алгоритмов на более простые за счет явного определения подпрограмм (SUBROUTINE) и функций (FUNCTION). Описания данных в Fortran были ориентированы на представление главным образом числовой информации, поэтому и типы данных были просты: это целые и действительные числа, а также массивы из таких чисел. Однако программирование на Фортране представляло собой задачу непростую. К примеру, оператор DO 150 I=1,10 определяет начало цикла выполнения команд, идущих непосредственно за ним вплоть до строки с отметкой 150, причем параметр I при каждом новом начале цикла увеличивается на 1, и так до 10. А если вместо запятой между 1 и 10 поставить точку, то вместо цикла мы получим присвоение переменной DO150I значения 1.10. Но поскольку Fortran обладает хорошо развитым математическим аппаратом, и под него за время его существования было написано множество удобных и полезных библиотек, он до сих пор иногда используется при программировании сложных вычислений. Первая версия была предназначена специально для компьютера IBM-704, который работал на лампах (!). Позднее появились более проработанные версии: Фортран II позволял присоединять куски кода на ассемблере, Фортран III и Фортран IV, который вышел в свет в 1962 году, а также Фортран V, который умел работать с комплексными числами. Большим неудобством было то, что на разных машинах стояли Fortran"ы разных версий и между ними не было никакой совместимости, поэтому в 1966 году решено было принять единый стандарт. Следующая стандартизация была проведена в 1977, и версия стандарта Fortran77 стала особенно популярна. Стоит заметить, что это был первый пример коммерчески успешного языка. Fortran не умер и сегодня, как думают многие, хотя область его применения остается достаточно специфической. Появились даже пакеты Visual Fortran, позволяющие писать программы с графическим интерфейсом пользователя под среду Windows. К тому же Fortran до сих пор продолжают изучать при подготовке по некоторым физико-математическим специальностям во многих университетах, где он остается профилирующим языком программирования. Но Fortran приносил радость и утешение лишь ученым, которые решали с его помощью свои специфические научные и инженерные задачи.

1.1 Универсальный язык программирования COBOL

ЭВМ между тем развивались, и становилось понятным, что с их помощью можно решать самые разнообразные проблемы, зачастую не связанные с научными приложениями. Поэтому постепенно разрабатывались и компиляторы других языков программирования. Так в конце 1959 года в США группа разработчиков представила совершенно новый универсальный язык программирования COBOL - это аббревиатура от Common Business-Oriented Language - универсальный язык, ориентированный на задачи бизнеса. В Коболе, в отличие от большинства других языков, все данные описываются в отдельной секции, которая не совпадает с секцией команд. Это позволяет использовать одни и те же описания данных в различных программах. COBOL был аппаратно независим, и это также способствовало его потрясающей популярности в 60-х - 70-х годах, особенно после выхода в 1962 году его новой версии. Особенно эффективно программы, написанные на COBOL"е, производят простые арифметические операции с большими массивами данных, что довольно часто приходится делать в бухгалтерских расчетах. В нашей стране этот язык тоже достаточно широко использовался, причем он, один из немногих, был переведен на русский язык.

1.2 Алгоритмический язык программирования Алгол

Языков программирования было все еще мало, да и те, что были, не всегда устраивали привередливых разработчиков. Поэтому ряд ведущих программистов в Цюрихе представили в 1958 году свое новое детище - Алгол (сокращение от ALGOrithmic Language - алгоритмический язык программирования). Первая версия языка так и называлась - Алгол 58, а позднее, в 60 году, уже в Париже, был принят стандарт Алгол 60, который и стал основным на долгие годы, и хотя несколько раз вносились новые поправки и дополнения, это название оставалось неизменным до 1968 года. Язык приняли неоднозначно, как удачно заметила Грейс Хоппер - один из крупнейших специалистов по языкам высокого уровня (если не сказать "крестная мать" языков программирования) - "Алгол похож на большую поэму: простой и ясный с точки зрения математики, но отнюдь не практичный". В США Алгол не получил широкого распространения, зато европейцы сразу приняли Алгол. Он дал возможность европейской компьютерной индустрии обрести независимость от американской технологии и распространился от Великобритании до Советского Союза. В начале 80-х множество советских программистов работали на Алголе-60. Но основная заслуга этого языка в другом - он заложил базу для дальнейшего развития программистской мысли, и многие языки программирования, разработанные впоследствии и получившие широкое распространение как в кругу профессионалов, так и среди любителей, содержат многие идеи и решения, взятые из Алгола. В первую очередь, это создание специальной нотации для определения синтаксиса алгоритмических языков (нотация Бэкуса-Наура). Во-вторых, доведение до логического завершения самой концепции операторных алгоритмических языков с заранее фиксированными типами данных и блочной структурой. Из дополнительных нововведений можно выделить возможность разработки отдельных модулей проекта независимо друг от друга, а также реализацию вызовов фрагментов кода программы, способов передачи параметров между процедурами и функциями. Достаточно сказать, что именно в Алголе появились понятия блока и рекурсивного вызова функции.

1.3 Универсальный код символических инструкций BASIC

На заре развития вычислительной техники программисты были чем-то вроде обособленной секты, неохотно пускающей в свои ряды новичков. В основном этому способствовали техническое несовершенство компьютеров и малое их количество. Но среди программистов были и те, которые считали необходимым сделать программирование такой же простой и обыденной учебной дисциплиной, как математика. Отцы-основатели BASIC"а (расшифровывается как Basic Beginner"s All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих) - два ярких представителя программистов старшего поколения, сотрудники математического факультета Дармутского колледжа Томас Курц и Джон Кемени. Курц имел степень доктора по математической статистике. Впервые с компьютерами он познакомился в 1951 году в Калифорнийском университете. Кемени был на два года младше Курца. С компьютерами он был, что называется, "на ты". Еще во время учебы в Принстоне, он ездил в 1945 году в Лос-Аламос, где принимал участие в работе над особо секретным "Манхэттенским проектом" по созданию атомной бомбы. Наставником Кемени был сам Джон фон Нейман, чьи идеи в области компьютерных вычислений оказали серьезное влияние на все дальнейшие разработки в этом направлении. После войны Кемени работал ассистентом у Альберта Эйнштейна в Принстонском институте перспективных исследований, одновременно заканчивая докторантуру. Так как получить место преподавателя математики не удалось, он преподавал логику. В 1953 году ему предложили возглавить математический факультет в Дартмутском колледже. В то время ему было всего 27 лет. Когда Кемени и Курц только начинали совместное сотрудничество, Дармутский колледж представлял собой лишь небольшое учебное заведение гуманитарного профиля, которое не имело своего компьютера. Однако уже через десять лет колледж не только получил великолепный вычислительный центр, но и право называться родиной языка Бейсик, оказавшего огромное влияние на программирование. В первое время Кемени и Курц были вынуждены работать со своими математическими программами за 215 км от Дармутского колледжа. Ближайший доступный им вычислительный центр находился в Массачусетском технологическом институте. Это был новейший компьютер IBM-704, который имел феноменальный по тем временам объем памяти 8192 слова по 365 разрядов каждое. Но, даже проделав долгий путь, Курц и Кемени не могли самостоятельно работать на машине, из-за существовавшей тогда системы пакетной обработки (batch processing). Так как компьютеры были немногочисленны и страшно дороги, доступ к ним имели только избранные. Программисту требовалось подготовить задание на перфокартах и передать его в вычислительный центр оператору. Он вводил карты в машину в большом пакете, который содержал сотни программ, принадлежащих различным пользователям. Потом происходило ожидание, в течение нескольких дней. Причем не всегда данные, выданные машиной, оправдывали эти ожидания. Малейшей описки было достаточно, чтобы машина прекратила выполнение программы. Исправив ошибку, программист должен был заново отправить программу оператору и опять ждать результатов. Даже хорошие программисты тратили много времени на исправления ошибок в своей программе. Для Курца, а именно он отвозил программы в МТИ, это оборачивалось бесконечными поездками из Дартмута в Бостон и обратно. Но проблемы не ограничивались лишь неудобствами пакетной обработки. Помимо этого первые программы для машины IBM-704 приходилось писать на языке ассемблера. И если программа начинала вести себя "странно", то единственным способом исправления ошибки было изучение дампа памяти - длинной бумажной ленты, содержащей числовые коды. Свое программистское мастерство Кемени и Курц оттачивали, изучая язык ассемблера и разбираясь с бесконечными дампами, лелея надежду об установке компьютера в Дартмуте. Не представляли они себе лишь того, как научить программированию коллег и студентов, ведь сам процесс программирования был чрезвычайно сложным. К началу 60-х годов Кемени и Курц добились некоторых успехов. Вначале Дармутский колледж получил собственный маленький компьютер LGP-30 с объемом памяти вдвое меньше, чем у IBM-704. Курц возглавил новоиспеченный вычислительный центр, и на протяжении нескольких лет два молодых профессора занимались разработкой простых языков, предназначенных для работы на машине LGP-30. Один студент, не занимавшийся до этого программированием, разработал язык "ДАРТ". Успехи студента подтвердили убеждение Курца и Кемени - работа с компьютером вполне по силам студентам. Наконец настала пора выдвинуть идею, которую они вынашивали многие годы. Их предложение было очень смелым: обучать азам программирования всех студентов, независимо от специальностей, будь то гуманитарные или естественные науки. Поставленная цель уже сама по себе была весьма необычной, но намерения Кемени и Курца этим не ограничивались. В отличие от своих коллег, которых вполне устраивала методика обучения студентов программированию путем чтения лекций, Кемени хотел, чтобы студенты работали с машиной "вживую", создавая для нее реальные программы. Но студентов много, а компьютер только один, и, хотя студентам не приходилось путешествовать в другой город, утомительность работы с пакетной обработкой несла с собой разочарования. Будущих инженеров и математиков необходимо было заставить смириться с многочасовым и даже многодневным ожиданием результатов. Перспектива пакетной обработки создавала определенные трудности, но они были не такими пугающими, как сам процесс обучения студентов языкам программирования. Но никакими препятствиями невозможно было остановить пытливые умы "дармутской команды". Для начала они попытались устранить неудобства пакетного режима, и решили использовать систему разделения времени (time sharing), предложенную МТИ в конце 50-х годов. Система разделения времени предполагала подключение к главному процессору (mainframe) нескольких терминалов с алфавитно-цифровой клавиатурой. Специальные инструкции позволяли процессору по очереди подключаться к каждому терминалу, выполняя некоторую часть операций в течение определенного временного отрезка - несколько миллисекунд. Так как используемый процессор предполагался достаточно мощным, у каждого программиста создавалось впечатление, что машина работает только с ним. Следующая их идея была в создании языка программирования, который бы подходил для обучения азам программирования, то есть был бы легок для освоения студентами. Воображение легко рисовало язык, состоящий из английских слов, понятных и программисту, и компьютеру. Операторы нового языка должны были обладать сходством с операторами языка Фортран для возможности легкого перехода на новый уровень программирования. Некоторые идеи Кемени и Курца отличались от существовавших тогда "принципов". Например, введение в язык оператора INPUT, позволяющего вести некое интерактивное взаимодействие. Это позволяло изменять программу в процессе ее работы. Кроме того, язык, разработанный Кемени и Курцом, не предусматривал разделения чисел на целые и вещественные, как в языке Фортран. Бейсик оказался универсальным языком в отличие от, например, COBOL"а. А его простота позволяла использовать преимущества ЭВМ как математикам и инженерам, так и филологам и социологам. Летом 1963 года Кемени начал разрабатывать первую версию компилятора для языка Бейсик. Осенью того же года студенты приступили к проектированию и кодированию операционной системы для машин, на которых Кемени и Курц планировали реализовать свои идеи. Это были машины General Electric-225 и Datanet-30. В феврале 1964 года оборудование было доставлено в колледж, и работа закипела с удвоенной силой. Наконец, 1 мая 1964 года в 4 часа утра в полуподвале здания колледжа Кемени и его коллеги начали набирать программы, каждый на своем терминале. Наконец-то все заработало! Одновременно родились язык Бейсик и система разделения времени. Но это было только начало. Долгое время BASIC не имел компилятора или интерпретатора, который бы позволял создавать полноценные исполняемые exe-файлы. И лишь в конце 1975 году был создан первый его интерпретатор. Он был создан двумя программистами-любителями - Диком Уипплом и Джоном Арнольдом. В том же 1975 году фирма Micro Instrumentation and Telemetry Systems выпустила свою версию языка BASIC. Ее создатели - кто бы вы думали? - никому не известные программист фирмы "Хониуэл" (Honeywell) и студент младших курсов Гарвардского университета Пол Аллен, а также его нерадивый приятель Билл Гейтс. Одно время популярность BASIC"а была столь велика, что PC выпускались с его интерпретатором, прошитым прямо в ПЗУ компьютера. Самым популярным стал М-Бейсик, первый коммерческий успех молодой компании Microsoft Corporation. Но, несмотря на все свои достоинства, и он скоро стал сдавать свои позиции, уступая их объектно-ориентированным языкам программирования. Не помогли даже пересмотры стандарта языка и исключение вечного камня преткновения - оператора безусловного перехода GOTO, который запутывал программу, делая из нее нечто похожее на блюдо спагетти. К слову сказать, Microsoft до сих пор продвигает своего первенца - теперь это уже хорошо разросшийся Visual Basic - целый пакет визуального программирования, который вряд ли кто-нибудь обвинит в "объектной неориентированности", и его аналог для программирования в Internet - VBScript. Несмотря на практически полностью измененный интерфейс, этот язык и сейчас остается простым в изучении и отлично подходит для написания небольших, нетребовательных к ресурсам программ. Еще один очень интересный пример языка, сошедшего с пути исторического развития, о котором сегодня помнят разве что специалисты, - PL/1. Все началось с того, что уже упоминавшаяся ранее фирма IBM в 1961 году решила начать разработку новой ЭВМ. Это должна была быть совершенно новая машина, одинаково хорошо обрабатывающая большие массивы данных и обсчитывающая сложные математические задачи; проект получил название "Система-360". Вместе с новой машиной разрабатывался и язык: он совмещал особенности трех лидеров данного сектора рынка - Фортрана, Кобола и Алгола. Главой проекта стал Джорж Рэдин. Менее чем за год все необходимые работы были проведены, и появился первый компилятор. Свое название язык получил как аббревиатуру от Programming Language One PL/1. Возникает резонный вопрос: почему же мы сегодня ничего не знаем об PL/1, раз он такой хороший и так много всего в себе совмещает? Оказалось, что разработчики далеко не всегда брали от его "родителей" все самое лучшее, как следствие, язык получился перегруженным возможностями и концепциями. Но вернемся к началу 60-х годов. Все основные языки программирования все еще можно было пересчитать по пальцам, но вскоре их число начало резко возрастать. Поэтому были предприняты попытки создать универсальный язык программирования, но ни одна из этих попыток не увенчалась успехом. Среди десятка наиболее распространенных на тот период времени языков программирования каждый был ориентирован на решение определенных задач. Бейсик употреблялся для написания простых программ. Фортран - с его четко определенными правилами выполнения арифметических операций - являлся классическим языком программирования для решения математических и физических задач. Язык программирования COBOL был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса. Другие языки программирования были также специализированы. Еще один заслуживающий внимания язык программирования - Алгол - предназначался для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленной задачи. Программисты далеко неоднозначно приняли Алгол, широкого одобрения он не получил. Но все же влияние Алгола на развитие других языков программирования оказалось значительным. Среди языков, целью создания которых было улучшение Алгола, следует особо отметить.

1.4 Алгоритмический язык Паскаль

Паскаль, разработанный в конце 60-х годов швейцарским ученым Никлаусом Виртом. Pascal был назван в честь французского философа и математика XVII века Блеза Паскаля. Как известно, история повторяется, и вся новизна лишь в том, что на каждом новом витке - она делает это на более высоком уровне. Мы уже отмечали, что BASIC появился как побочный продукт преподавательской деятельности у Кемени и Курца, когда они пытались обучать студентов программированию. Нечто похожее произошло и с Паскалем. Некоторое время Никлаус Вирт был профессором информатики в Федеральном техническом университете в Швейцарии и нуждался в языке, с помощью которого относительно легко можно было бы обучать студентов навыкам программирования на хорошем уровне. Базовая концепция Паскаля была разработана Виртом примерно в 1970 году, и Паскаль очень быстро начал повсеместно распространяться, прежде всего, благодаря легкости в изучении и наглядности написанных на нем программ. Язык Паскаль требовал от программиста определения всех переменных в отдельной секции в начале программы. Так как эти определения задавались явным образом, то в программах появлялось сравнительно немного ошибок, и их было проще понять и исправить разработчику. Это сделало Паскаль популярным при создании больших программ. В 1962 году он был объявлен официальным языком программирования для учащихся средних школ, которые намерены специализироваться в области вычислительной техники и программирования в американских университетах. В то же время, стандартный Паскаль обладал рядом существенных недостатков. Поэтому Вирт продолжил развивать свое детище, так через девять лет, в 1979 году, появилась Модула-2, прежде всего от Паскаля она отличалась тем, что давала возможность использовать модульное программирование, а значит, с ее помощью уже можно было создавать достаточно большие проекты. К середине 70-х годов назрела необходимость разработать международный стандарт на Паскаль. В результате, в 1982 году появился стандарт ИСО 7185. Но Вирт не останавливался на достигнутом, и немного позднее появились Ада и Оберон, которые позволяли использовать типы и объекты, что уже давало кардинально новые возможности для разработчиков. Язык Ада был создан фактически по заказу Министерства обороны США и, соответственно, при его активной поддержке. Был проведен конкурс среди разработчиков, и его выиграла некая фирма Honeywell в лице ее подразделения Cii-Bull с руководителем Ж. Ишбиа. Язык был назван в честь Августы Ады Лайвейс - дочери английского поэта Дж. Байрона, которая считается первой программисткой. Окончательная версия спецификаций языка Ада появилась в феврале 1983 году, она и стала основной. Ада до сих пор считается современным языком с традиционной структурой управления, возможностями определения типов и подпрограмм. Удовлетворяет язык и требованиям модульности. В дополнение к классическим свойствам язык обеспечивает программирование задач реального времени, а также возможности моделирования параллельного решения задач и обработку прерываний. Поскольку Ада морфологически произошла от Pascal, у них есть очень много общего, хотя наблюдаются и некоторые аналогии с Модулой. С самого начала Ада предназначалась для разработки больших программных пакетов. Учитывая то, какую серьезную (моральную и не только) поддержку предоставляли правительство и Министерство обороны США, неудивительно, что язык очень быстро развивался и без особых проблем распространялся. Здесь нужно заметить, что стандартный Паскаль был действительно очень простым языком. В то же время в сознании большинства людей (особенно молодого поколения, тех, кому еще нет 30), Паскаль обычно ассоциируется с Turbo Pascal от фирмы Borland - это не верно! Ведь Turbo Pascal включает в себя многие положительные качества как Модулы, так и Oberon"a, и является гораздо более сложным и мощным языком, чем Паскаль Вирта. Судите сами: он позволяет использовать и модули, и типы, и даже объекты, давая всю мощь объектно-ориентированного программирования в руки разработчика. Как же он возник? Никлаус Вирт здесь совсем не при чем, а при чем - Андерс Хейлсберг, которого и следует считать отцом-создателем Турбо Паскаля, вскоре вытеснившего с рынка все другие спецификации. Это победоносное шествие началось в 1984 году с появлением версии Turbo Pascal 2.0, ее распространение шло стремительными темпами. Версии 3.0, 4.0 и 5.0 выходили соответственно в 1985 и 1988 годах (последние две). В них появилось несколько революционных нововведений: возможность разбивать программу на несколько файлов (модулей), интерфейс взаимодействия с MS-DOS и встроенный отладчик. Отладчик (debugger) - это очень полезное средство, позволяющее в период выполнения программы просматривать содержимое регистров процессора, текущие значения переменных и последовательность выполнения программы. От версии к версии оптимизировалась работа компилятора, который генерировал исполняемый код на основе текста программы. Даже достаточно простые программы, перенесенные с других языков программирования, не использующие всех возможностей, которые давал Паскаль, после компиляции начинали работать существенно быстрее. Так, основной из причин, по которой автор этих строк еще очень давно решил отказаться от Бейсика и использовать Паскаль, - явилась наглядная демонстрация скорости работы компилятора Turbo Pascal 2.0. Компиляция происходила в полтора раза быстрее, ехе`шник получался во много раз меньше (несколько килобайт для простенького приложения против 40-50 у Бейсика), а скорость выполнения полученного кода просто впечатляла. Сейчас, когда машины оснащаются сотнями мегабайт оперативной памяти и быстродействующими процессорами, мало кто обращает внимание на такие, казалось бы, мелочи, а тогда, при работе на 8088 процессоре со всего 640 кб оперативной памяти, это было очень важно. Последующее развитие Pascal привело к появлению таких библиотек, как Turbo Vision, с использованием которой написан, наверное, всем известный, Dos Navigator, а также языка Object Pascal, который впоследствии стал основой для создания Delphi. Delphi - компилятор языка Object Pascal. Delphi 1 был первым инструментарием разработки Windows-приложений, объединившим в себе оптимизирующий компилятор, визуальную среду программирования и мощные возможности работы с базами данных. Годом позже Delphi 2 предложил все то же, но на новом уровне современной 32-битной операционной системы Windows 95 и Windows NT. Кроме того, Delphi 2 предоставил программисту 32-битовый компилятор, создававший более быстрые и эффективные приложения, мощные библиотеки объектов. Продолжительная работа команды разработчиков Delphi привела к появлению в третьей версии продукта расширенного набора инструментов для создания приложений, возможности использования технологий COM для разработки приложений WWW и многих других современных технологий программирования. Современный Delphi 6 является очередным шагом в эволюции компиляторов Паскаля, первый, как вы помните, был сделан более 16 лет назад Андерсом Хейлсбергом. Пожалуй, мало найдется языков, которые бы жили так долго, при этом оставаясь актуальными. Действительно, Delphi позволяет даже самому неискушенному в программировании человеку после сравнительно небольшого времени, потраченного на его изучение, создавать профессионально выглядящие программные продукты с графическим интерфейсом пользователя в стиле Windows. Особенно удобно на Delphi работать с базами данных. Естественно, эта легкость работы с Delphi оборачивается некоторыми минусами языка. Основной недостаток Delphi - скорость работы, она очень и очень невысока. Да и генерируемый компилятором код получается увесистым и неуклюжим. Так, создание пустого окна даст ехе-файл размером почти в полмегабайта, на С++ - такое же займет 15-30 килобайт, в зависимости от ваших стараний (или 1 Кб при совсем творческом подходе к проблеме). Тем не менее, для некоторых сфер применения Delphi является идеальным решением, поэтому сейчас он достаточно популярен.

Существуют два способа трансляции:

1. ИНТЕРПРЕТАЦИЯ (Interpretation) - метод выполнения в ЭВМ программы, заданной на языке программирования, при котором инструкция исходной программы переводится и сразу выполняется.

2. КОМПИЛЯЦИЯ (Compile - собирать) - метод выполнения в ЭВМ программы, но не сразу, а лишь тогда, когда собран перевод всего текста программы.

Разницу между компиляцией и интерпретацией можно выяснить с помощью аналогии. Фармацевты в аптеке приготовляют микстуру по старинному рецепту, написанному на латыни. Есть два пути: можно сначала перевести (скомпилировать) рецепт на родной язык и лишь затем готовить лекарство на родном языке. А можно, по мере чтения перевода рецепта, сразу готовить лекарство, но не записывать сам текст перевода (т.е. только интерпретировать). В последнем случае мы не получим текста рецепта на родном языке. А можно, по мере чтения перевода рецепта, сразу готовить лекарство, но не записывать сам текст перевода (т.е. только интерпретировать). В последнем случае мы не получим текста рецепта на родном языке, а сразу получим микстуру, правда, если лекарство нужно готовить несколько раз, рецепт придется переводить многократно. Интерпретация используется в простых языках, где требуется несложная трансляция (Бейсик), или там, где компиляция слишком сложна или даже невозможна (язык ЛИСП). Часто используют оба эти способа совместно: интерпретатор - для отладки и компилятор - для трансляции отлаженной программы. Работа с программой, написанной на алгоритмическом языке, очень упрощается за счет относительной простоты написания программы, удобной читаемости, возможности ее подкорректировать. Однако при этом всплывают и недостатки: требуется дополнительное время на трансляцию и дополнительная память для размещения транслятора.

Итак, в 1955 году увидел свет первый алгоритмический язык Фортран. Он использовался для решения научно-технических и инженерных задач. Слово "Фортран" образовано от начальных слогов английских слов - formula translator (переводчик формул). Он был разработан сотрудниками фирмы IBM под руководством Джона Бэкуса. Основным назначением этого языка является программирование численных расчетов на ЭВМ.

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

Затем в 1960 г. появился Алгол (Algoritmic language - алгоритмический язык), также ориентированный на научное применение, в него было введено множество новых понятий, подхваченных позднейшими языками, например, понятие блочной структуры. Также при поддержке фирмы IBM появился язык Кобол (Cobol - сокращенное от английских слов Comnon business oriented language - общепринятый деловой ориентированный язык). Он был ориентирован на решение экономических задач, а точнее - на обработку информации.

Язык Бейсик (Basic - beginners all-parpouse sumbolic instraction code, что в переводе с английского означает "многоцелевой язык символических инструкций для начинающих") был разработан профессорами Дартмутского колледжа (СИГА) Т.Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его популярность повысилась благодаря "взрыву микроинформатики" - появлению персональных микрокомпьютеров, где Бейсик стал основным языком программирования. Достоинствами Бейсика являются удобные средства ввода, отладки и испытания программ, а также возможность доступа ко всем основным ресурсам компьютера. Его отличает простота конструкций и возможность осуществления диалогового режима работы с ЭВМ. Вместе с тем Бейсик имеет и ряд недостатков. Это прежде всего отсутствие явных ограничений на составление запутанных программ (этот недостаток присущ и Фортрану). Его оператор Goto при бездумном применении сильно запутывает программу и порой делает ее совсем непонятной с точки зрения логики выполнения. Кроме того, программы на языке Бейсик обычно выполняются относительно медленно, поскольку ЭВМ применяют, как правило, не компиляторы, а интерпретаторы языка. Но последние диалекты языка Бейсик все больше устраняют перечисленные недостатки и приближают его к языку Паскаль и другим процедурным языкам (т.е. основанным па понятиях алгоритмов, программ, инструкции). С его помощью можно решать достаточно сложные задачи. Например, так называемая версия расширенного Бейсика, имеющая матричные операции, позволяет с помощью одного оператора преобразовывать большие таблицы (матрицы). Есть версии Бейсика, работающие в режиме компиляции, что значительно ускоряет прогон программ, написанных на этом языке.

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

В 1967-1968 гг. появился язык PL/1 (Programming language - универсальный программно-ориентированный). Он также был создан на фирме IBM, но уже в качестве универсального языка программирования. Этот язык, как языки программирования СИ, Ада и Паскаль, может использоваться как для научных задач, так и для задач управления. Он очень мощный, но и очень сложный, используется лишь в высших учебных заведениях и научно-исследовательских центрах.

В 1970 г. профессор Никлаус Вирт создал в Цюрихском политехническом университете язык Паскаль (Pascal). Создатель языка назвал его в честь Блеза Паскаля первого конструктора устройства, которое теперь относится к классу цифровых вычислительных машин. Он создавался как язык, который, с одной стороны, был бы хорошо приспособлен для обучения программированию, а с другой - давал бы возможность эффективно решать самые разнообразные задачи на современных ЭВМ. При создании этого языка Вирт большое внимание уделял хорошему стилю программирования (так называемое структурное программирование), благодаря которому конструкции Паскаля позволяют писать надежные, легко проверяемые программы с ясной и четкой структурой. Работая в среде данных языков, компьютер решает задачу, а программист лишь ее формулирует. ЭВМ пробегает все рабочее пространство в поисках решения специальным способом, но зато полностью исчерпывающим (возможен обратный ход). Существует огромное множество специализированных языков, позволяющих эффективно решать задачи в некоторых областях: моделирования (языки Симула, Симкрит и GPSS), управления аппаратурой (ФОРТ), для написания системных программ (СИ), написания баз данных (Кодасил), обучения программированию (Лого, Робик, алгоритмический язык А.П.Ершова) и другие. Но в целом эволюция машинных языков происходит в направлении естественного языка - идеальное решение, состоящее в том, что пользователю надо будет только сформулировать задачу на естественном языке, а все остальное сделает компьютер. Конечно, в настоящее время это всего лишь мечта, но тем не менее языки последних поколений более близки к языку человеческих рассуждений.

2. Развитие средств программирования

Основные особенности развития программирования в период машин второго поколения обусловлены расширением областей применения ЦВМ и усложнением их структуры. Расширение областей применения -- одна из важнейших причин разработки большого количества алгоритмических языков. По состоянию на 1967г. во всем мире использовалось около 1000 алгоритмических языков, включая специализированные языки и языки, ориентированные на запись широкого класса алгоритмов, т. е. универсальные применительно к данной достаточно широкой области применения (вычислительные задачи, обработка экономической информации, информационно-логические задачи, управление в реальном масштабе времени). В то же время, начиная с середины 50-х годов, предпринимались попытки создания единого универсального алгоритмического языка. Широкий международный характер приняли работы по созданию и совершенствованию языка АЛГОЛ, ориентированного на применение в научно-технических расчетах. Первый вариант языка АЛГОЛ был разработан группой ученых из ФРГ и Швейцарии и в 1957 г. одобрен Германским техническим обществом. Цель разработки заключалась в создании универсального международного языка, который был бы пригоден для всех выпускаемых моделей универсальных ЦВМ. В переработке первого варианта АЛГОЛА участвовали ученые ряда стран, собравшиеся в январе 1960 г. на Объединенную конференцию в Париже. Представители США, Великобритании, Франции, ФРГ, Швейцарии и Дании одобрили переработанный вариант АЛГОЛА (АЛГОЛ-60) и рекомендовали его для применения в качестве универсального языка. «Не будет преувеличением утверждать,-- писал в 1965 г. М. Р. Шура-Бура,-- что появление пять лет назад сообщения об АЛГОЛ-60 стало важной вехой в развитии языков программирования… АЛГОЛ-60, как язык для описания алгоритмов численного анализа, сконцентрировал в себе значительную часть наиболее удачных сторон ранее известных языков программирования, предназначенных для тех же целей».Недостатком АЛГОЛА-60 явилось отсутствие в языке каких-либо канонизированных средств для задания ввода и вывода информации, что существенно затрудняло разработку трансляторов. Поэтому ряд зарубежных фирм, выпускающих универсальные ЦВМ, предпочли ориентироваться на собственные разработки. В 1957 г. группа специалистов фирмы «ИБМ» под руководством Дж. Бакуса закончила разработку языка ФОРТРАН. Целью работ, проводившихся в течение трех лет (1954--1957 гг.), было создание алгоритмического языка, ориентированного на задачи численного анализа и транслятора с этого языка на язык команд машины ИБМ-704. По сравнению с АЛГОЛОМ язык ФОРТРАН более ориентирован на машину и конкретные способы трансляции, что и послужило одной из причин его широкого распространения в США и других странах.Очень широкое распространение получил также язык «КОБОЛ», разработанный в США в 1958--1960 гг. и ориентированный на описание алгоритмов экономических задач. Поскольку научно-технические и экономико-статистические задачи составляют значительное большинство всех задач, решаемых с помощьюЦВМ, языки КОБОЛ, АЛГОЛ и ФОРТРАН получили весьма широкое распространение в 60-х годах. Трансляторы с этих трех языков, как правило, входят в набор средств математического обеспечения, которыми оснащаются выпускаемые за рубежом универсальные ЦВМ. В СССР сравнительно широкое применение получил язык АЛГОЛ, который «положен в основу различных систем автоматизации программирования, содержащих в своем составе трансляторы для конкретных машин». Наряду с языками АЛГОЛ, КОБОЛ и ФОРТРАН в СССР и за рубежом в первой половине 60-х годов были разработаны и получили практическое применение другие специализированные и обобщенные алгоритмические языки, среди которых необходимо отметить языки, созданные для описания алгоритмов решения неарифметических задач (ИПЛ, ЛИСП, КОМИТ и др.) и языки для управления в реальном масштабе времени.В 1963 г. в США была начата работа по созданию алгоритмического языка, сочетающего наиболее ценные свойства языков для записи алгоритмов численного анализа (ФОРТРАН и АЛГОЛ), обработки экономической информации (КОБОЛ) и информационно-логических задач (ИПЛ). Результатом исследований, проведенных комитетом из специалистов фирмы «ИБМ» и ассоциации «ШЕАР», явилась разработка языка ПЛ-1. В настоящее время ПЛ-1 является одним из наиболее мощных средств программирования.Рассмотрение обстоятельств создания алгоритмических языков позволяет наметить некоторую общую схему их развития. В целом развитие языков связано с расширением областей применения ЦВМ. Тенденция к созданию единого универсального языка приводит к разработке одного или нескольких языков, пригодных для описания значительного большинства задач, решаемых в данный момент времени средствами цифровой вычислительной техники. Именно такими соображениями руководствовались создатели АЛГОЛА и ФОРТРАНА, начавшие разработку данных языков в то время, когда научно-технические задачи составляли абсолютное большинство задач, решаемых на ЦВМ.В последующие годы область применения электронных ЦВМ существенно расширилась, прежде всего за счет задач, связанных с обработкой больших объемов информации. Наряду с этим произошло существенное усложнение структуры ЦВМ, прежде всего в результате применения различных форм мультипрограммной работы. Новым шагом на пути создания универсального языка явилась разработка ПЛ-1, приспособленного для описания алгоритмов решения подавляющего большинства задач (по состоянию на середину 60-х годов) и учитывающего архитектурные особенности наиболее распространенной серии вычислительных машин (ИБМ-360). Однако процесс расширения областей применения ЦВМ, естественно, не закончился в середине 60-х годов. В настоящее время, например, интенсивно развиваются такие направления, как обработка графоаналитической информации и машинное проектирование. Новые области применения неизбежно вызывают появление новых алгоритмических языков и соответственно тенденции к их обобщению на более высоком уровне. Поэтому в дальнейшем можно ожидать новых разработок в области универсального алгоритмического языка, например за счет усовершенствования ПЛ-1.Разработка алгоритмических языков имела существенное значение для формирования в 60-х годах нового подхода к разработке универсальных ЦВМ. Как отмечает А. Оплер, в первой половине 60-х годов «произошла техническая революция, в результате которой средства математического обеспечения превратились из полезного вспомогательного средства при программировании и эксплуатации вычислительных машин в равноправного партнера аппаратуры с точки зрения их значения для вычислительной техники». При этом подход к разработке вычислительных машин претерпел существенную эволюцию: вместо независимой разработки аппаратуры и некоторых средств математического обеспечения стала разрабатываться система, состоящая из совокупности аппаратурных средств и средств программирования. На протяжении 60-х годов сложилась современная система средств математического обеспечения, которой, как правило, оснащаются выпускаемые универсальные ЦВМ и от которой в решающей степени зависят возможности их практического применения. В состав системы средств математического обеспечения, как правило, входят:а) одна или несколько операционных систем, обеспечивающих работу машины в том или ином режиме и содержащих такие программные средства, как управляющие программы (управление потоком заданий, управление процессом решения задач, управление обменом данными между запоминающими устройствами и т. п.), трансляторы с наиболее распространенных алгоритмических языков и сервисные программы (текущая модификация данных: сортировка, объединение, редактирование и т. п.);б) набор программ технического обслуживания машины (наладочные, проверочные, диагностические тесты);в) пакеты прикладных программ (для решения типовых научных, экономических, инженерных, информационно-поисковых и других задач).При этом сравнительно часто для записи программ, входящих в состав операционной системы, используется символический вариант языка данной машины, расширенный за счет введения в него некоторых команд и операторов (автокод). Таким образом создается двухступенчатая структура трансляции: с обобщенного алгоритмического языка на автокод и с автокода на язык машины. Применение автокодов обусловлено как неудобством (громоздкостью) машинных языков для описания операционных систем, так и непригодностью для данной цели таких языков, какАЛГОЛ. КОБОЛ и ФОРТРАН. Попытка упростить трансляцию была предпринята при создании языка ПЛ-1, который может быть использован как для описания алгоритмов решаемых задач, так и для описания операционных систем.

Заключение

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

Именно такие языки и ориентированы на описание алгоритмов. Поэтому их еще называют алгоритмическими языками.

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

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

Литература

1. “Язык программирования Си.” Б.В. Керниган, Д. Ритчи, А. Фьюэр. Русский перевод: Москва: Финансы и Статистика. 1985 г.;

2. “Основы автоматизации” ч.1, Золотарев В.В., 1978 г.;

3. “Языки программирования” кн.5, Ваулин А.С., 1993 г.;

4. “Языки программирования: разработка и реализация”, П. Терренс, 1979 г.

5. “Алгоритмические языки реального времени”, Янг С., 1985 г.

6. Можаров Р.В., Можарова Н.Р., Евтеев В.В., Кузьменко О.А., Шевченко М.О. Программное обеспечение персональных компьютеров//Учебное пособие для вузов. - М.: Финстатинформ, 1999.

7. В.И. Пономарёва. Практикум по программированию в среде Turbo Pascal. Симферополь, Таврида, 1998, 256

8. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. Харьков, Фолио, 2002, 500.

9. www.bankreferatov.ru


Подобные документы

  • Машинные коды и ассемблер. Первые языки программирования высокого уровня. Язык программирования FORTRAN. Достоинства и недостатки ALGOL. Научные и бухгалтерские программы. Основные принципы, которые соблюдались при создании языка программирования Basic.

    курсовая работа [407,4 K], добавлен 21.06.2014

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

    реферат [64,4 K], добавлен 02.05.2015

  • Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).

    дипломная работа [588,3 K], добавлен 29.12.2010

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

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

    презентация [873,4 K], добавлен 23.01.2013

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

  • Развитие и классификация языков программирования. Методические рекомендации по изучению языков программирования. Основные понятия объектно-ориентированного программирования. Создание электронного учебного пособия с помощью языка гипертекстовой разметки.

    курсовая работа [331,1 K], добавлен 06.09.2011

  • Основные этапы развития языков программирования. Характеристика машинно-ориентированной, проблемно-ориентированной и процедурно-ориентированной систем программирования. Ознакомление с системами программирования Delphi, Visual Basic и Visual C++.

    курсовая работа [102,4 K], добавлен 21.07.2012

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

    курсовая работа [400,6 K], добавлен 10.11.2016

  • Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.

    курсовая работа [345,6 K], добавлен 13.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.