Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования. Критерии выбора среды и языка разработки программ (История развития языков программирования)

Содержание:

Введение

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


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

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

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

Цели исследования:

  1. Просмотреть общее сведения и уровни языков программирования.
  2. Просмотреть историю развития языков программирования.
  3. Сделать обзор современных языков программирования.

Задачи исследования:

  1. Ознакомления с языками программирования.
  2. Рассмотрение истории развития языков программирования.
  3. Обзор современных языков программирования.

В первой главе рассматриваются общие сведения о языках программирования и история развития их.

Во второй главе рассматривается обзор современных языков программирования.

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

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

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

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

Основные требования, предъявляемые к языкам программирования:

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

единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;

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

модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;

однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач [2].

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

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

По этому критерию можно выделить следующие уровни языков программирования:

  • машинные;
  • машинно-оpиентиpованные (ассемблеры);
  • машинно-независимые (языки высокого уровня).

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

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

В случае если язык программирования ориентирован на определенный вид процессора и предусматривает его спецификации, в таком случае он называется языком программирования низкого уровня. В этом случае “низкий уровень” далеко не значит “плохой”. Имеется в виду, то что операторы языка близки к машинному коду и нацелены на конкретные команды процессора. [2]

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

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

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

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

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

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

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

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

Таким образом, можно сформулировать основные преимущества языков высокого уровня перед машинными:

алфавит языка высокого уровня значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;

набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;

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

требуемые операции задаются с помощью общепринятых математических обозначений;

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

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

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

Основные компоненты алгоритмического языка:

  • алфавит,
  • синтаксис,
  • семантика.

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

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

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

Языки высокого уровня делятся на:

  • процедурные;
  • логические;
  • объектно-ориентированные.

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

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

Разнообразие классов задач привело к тому, то что в настоящий период создано несколько сотен алгоритмических языков. Разумеется, обширное продвижение и интернациональное принятие приобрели лишь 10-15 языков. Из числа в первую очередь необходимо выделить: Fortran и Algol - языки, предназначенные для решения научно-технических задач, Cobol – с целью решения финансовых задач, Basic – с целью решения маленьких вычислительных задач в интерактивном режиме. В принципе любой из этих языков возможно применять с целью решения задач не собственного класса. Однако, как правило, их использование оказывается не удобным.

В то же время в половине ШЕСТЬДЕСЯТ-х лет стали создавать алгоритмические языки обширной ориентации – многоцелевые языки. Как правило они создавались согласно принципу объединения потенциалов ограниченно-направленных языков. Из числа их более популярны PL/1, Pascal, C, C+ , Modula, Ada. Но, равно как каждое универсальное средство, подобные обширно-направленные языки в многочисленных определенных вариантах становятся меньше результативными [2].

Логические языки- (Prolog, Lisp, Mercury, KLO и др.) нацелены никак не на запись алгоритма решения задачи, а в регулярное и формализованное представление проблемы с тем, для того чтобы разрешение надлежало из наложенного описания. В данных языках указывается то что дано и то что необходимо получить. При этом отбор постановления проблемы возлагается напрямую в ЭВМ.

Объектно-направленные языки (Object Pascal, C++, Java, Objective Caml. и др.). Управляющая концепция объектно-направленных языков состоит в устремлении объединить данные с обрабатывающими эти сведения упражнениями в общее единое - предмет.

Объектно-ориентированный подход использует следующие базовые понятия:

  • объект;
  • свойство объекта;
  • метод обработки;
  • событие;
  • класс объектов.

Объект — совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).

Свойство — это характеристика объекта и его параметров. Все объекты наделены определенными свойствами, совокупность которых выделяют (определяют) объект.

Метод — это набор действий над объектом или его свойствами.

Событие — это характеристика изменения состояния объекта.

Класс — это совокупность объектов, характеризующихся общностью применяемых к ним методов обработки или свойств.

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

  • инкапсуляция;
  • наследование.

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

Класс может иметь образованные от него подклассы. При построении подклассов исполняется наследование данных и методов обрабатывания объектов исходного класса. [2]

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

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

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

Программа – алгоритм, записанный на языке программирования. Программа – последовательность операторов языка. Языки программирования – искусственные языки, строго формализованные; существует правила записи операторов языка – синтаксис языка.

  1. Машинный язык (40-50 годы XX в.).

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

  1. Ассемблер (начало 50-ых годов XX в.).

Вместо 1 и 0 программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т.д.), которые похожи на английские слова. Программы на ассемблере также являются машинно-зависимыми. Для преобразования в машинный код использовался компилятор (спец. программа – переводчик в машинный код).

  1. Первые языки программирования высокого уровня.

С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-level language). Эти языки были Машино независимыми (не привязаны к опред. типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы.

Примеры таких языков: FORTRAN (FORmula TRANslator; 1954) предназначен для научных и технических расчетов; COBOL (1959) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) – Common Business-Oriented Language); язык BASIC (Beginner’s All Purpose Instuction Code – универсальный язык символьных инструкций для начинающих) (1964 г.)

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

С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора, цикла и практически отказ от частого использования операторов перехода (goto). К этим языкам относятся: язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970); язык Си, позволяющий быстро и эффективно создавать программный код (1971)

  1. Языки объектно-ориентированного программирования

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

язык С++ (1983) - продолжение алгоритм. языка Си;

язык Object Pascal (1989) был создан на основе языка Pascal. После создания среды программирования – Delphi (1995);

язык Visual Basic(1991) был создан корпорацией Microsoft на основе языка Qbasic (1975) для разработки приложений с графическим интерфейсом в среде ОС Windows.

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

В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:

язык Java - объектно-ориентированный язык был разработан фирмой Sun Microsystems для создания сетевого программного обеспечения (1995);

язык JavaScript – язык сценариев Web-страниц (компания Netscape). (1995)

  1. Языки программирования на платформе .NET.

Интегрированная среда программирования Visual Studio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:

на языке Visual Basic .Net ( на основе Visual Basic) - 2003 г.;

на языке Visual C# (С-шарп) – на основе языков С++ и J – 2003 г.;

на языке Visual J# (J-шарп) – на основе Java и JavaScript – 2003 г.

Интерпретаторы и компиляторы

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

Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора [6].

  1. Обзор современных языков программирования

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

Правила записи команд на конкретном языке называются синтаксисом языка. Синтаксис определяет, какая команда будет считаться правильной, а какая нет. Например, в языке Basic команды CLS и FOR I=1 TO 10 считаются правильными, а команды CLERSCREEN и FOR I FROM 1 TO 10 - неправильными.

Каждая команда, записанная на языке программирования, имеет определенное значение, то есть заставляет компьютер выполнять те или иные действия. Правила, определяющие смысл команд, называются семантикой языка. Например, команда CLS вызывает очистку экрана.

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

Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие. Языки отличаются друг от друга множеством допустимых объектов и набором операций, которые можно выполнять над этими объектами. [7]

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

По способу трансляции языки делятся на:

  • компиляторы
  • интерпретаторы

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

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

По уровню (особенностям построения) языки делятся на:

Машинно-ориентированные (ассемблеры).

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

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

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

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

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

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

Универсальные.

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

Из числа универсальных языков программирования в наше время более распространены:

2.1 Паскаль

Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля.

В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal ) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).

Delphi является «наследником» языка Паскаль; основные операторы в этих языках одинаковы. Но Delphi имеет средство для работы с различными графическими объектами (создания форм, кнопок, меню), а также для обработки сложных структур данных. Поэтому он очень популярен при разработке различных Windows- приложений [1].

2.2 Си его разновидности

  • Си [C] - Многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft ), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.
  • Си++ [C++] - Язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).
  • C# (C Sharp) – “ Си Шарп ”: объектно-ориентированный яык программирования, о разработке которого в 2000 г. объявила фирма Microsoft . По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML[1].

2.3 Фортран

В 1954 году в недрах корпорации IBM группой разработчиков во главе с Джоном Бэкусом (John Backus) был создан язык программирования Fortran.

Роль данного события сложно переоценить. Это первый язык программирования высокого уровня. В первый раз разработчик программного обеспечения имел возможность по-настоящему абстрагироваться от отличительных черт машинной архитектуры. Главной идеей, отличающей новый язык от ассемблера, была идея подпрограмм. Напомним, то что это нынешние компьютеры поддерживают подпрограммы на аппаратном уровне, предоставляя соответствующие указания и структуры данных (стек) непосредственно на уровне ассемблера, в 1954 же году это было совершенно не так. По этой причине компиляция Fortran’а была действием отнюдь не тривиальным. Помимо этого, синтаксическая структура языка была довольно трудна для машинной обработки в первую очередь из-за того, что пробелы как синтаксические единицы в целом никак не применялись. Это порождало изобилие возможностей для скрытых ошибок, таких, как к примеру:

В Фортране следующая конструкция описывает “цикл for до метки 10 при изменении индекса от 1 до 100”: DO 10 I=1,100. Если же здесь заменить запятую на точку, то получится оператор присваивания: DO10I = 1.100 Говорят, что такая ошибка заставила ракету взорваться во время старта.

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

Возникновение Фортрана было встречено ещё более гневной критикой, нежели внедрение ассемблера. Разработчиков программного обеспечения страшило снижение производительности программ из-за применения промежуточного звена в виде компилятора. И эти страхи имели под собой основания: на самом деле, хороший программист, скорее всего, при решении тот или иной незначительный проблемы вручную напишет код, который работает быстрее, нежели код, полученный как результат компиляции. Через некоторый период времени пришло понимание того, то что реализация крупных проектов невозможна без использования языков высокого уровня. Мощь вычислительных машин увеличивалась, и с тем падением эффективности, что ранее считалось угрожающим, стало возможным смириться. Достоинства же языков высокого уровня начали до такой степени явными, что заставили разработчиков к созданию новых языков, все наиболее и наиболее совершенных [1].

2.4 Бейсик

Бейсик [BASIC - Beginner’s All-purpose Symbolic Instruction Code] - Язык программирования высокого уровня , разработанный в 1963 - 1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени.

Сначала предназначался для преподавания программированию. Отличается несложностью, легко усваивается молодыми программистами благодаря присутствию упрощенных конструкций языка Фортран и интегрированных математических функций, алгоритмов и операторов. Имеется большое число разных версий Бейсика, которые не полностью совместимы друг с другом. Определенные реализации Бейсика включают средства обработки данных и наборов данных.
Большинство версий Бейсика применяют интерпретатор, который преобразует его компоненты в машинный код и дает возможность запускать программы без переходной трансляции. Некоторые наиболее свершенные версии Бейсика дают возможность использовать для данной цели трансляторы. На IBM PC обширно применяются Quick Basic компании Microsoft, Turbo Basic компании Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая компанией Spectra Publishing ). В начале 1999 г. компания Microsoft выпустила версию языка Visual Basic 6.0 (VB 6.0), специализированного для создания многокомпонентных программных приложений для систем уровня предприятий [1].

Например, язык Lisp используется для создания экспертных систем. Язык Java используется для разработки сетевых (Web)- приложений.

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

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

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

Интегрированная среда разработки обычно включает в себя:

текстовый редактор – для набора текста программы

компилятор (или интерпретатор) - для перевода программы в машинный код

компоновщик - для объединения при необходимости нескольких программ “запускатель программ”, который позволяет выполнить разрабатываемую программу, не выходя из среды разработки.

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

справочную систему, описывающую особенности конкретной реализации языка.

Для одного и того же языка могут существовать разные среды разработки. Например, для языка С есть среда Turbo C и Borland C [7].

Заключение

Формирование языков программирования высшего уровня, а кроме того их непрерывное усовершенствование и рост, разрешило человеку не только лишь контактировать с машиной и понимать её, но применять КОМПЬЮТЕР с целью труднейших расчетов в сфере самолетостроения, ракетостроения, медицины и в том числе и экономики.

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

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

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

 

  1. Список использованной литературы

  2. C++,Turbo Pasckal,QBasik:Эволюция языков программирования http://langprog.far.ru/historylangprog.html. -27.05.10.
  3. Информатика/Курносов А.П., Кулев С.А., Улезько А.В. и др.; Под ред. А.П. Курносова.-М.: КолосС, 2005.-272 с
  4. Макарова Н.В. Информатика /под ред. Проф. Н.В. Макаровой. — М.: Финансы и статистика, 1997. — 768 с.: ил.
  5. Малышев Р.А. Локальные вычислительные сети: Учебное пособие/ РГАТА. – Рыбинск, 2005. – 83 с.
  6. Островский В.А. Информатика: учеб. для вузов. М.: Высшая школа, 2000. —511 с.: ил.
  7. Семакин И.А., Информатика: Базовый курс /Семакин И.А., Залогова Л., Русаков С., Шестакова Л. – Москва: БИНОМ.,2005. – 105с.
  8. Симонович С.В.Информатика. Базовый курс/Симонович С.В. и др. — СПб.: издательство "Питер", 2000. — 640 с.: ил.