Файл: Классификация языков программирования высокого уровня (История развития языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 70

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

, можно преимущества уровня :

- алфавит уровня алфавита , что существенно текста ;

- операций, для , не зависит от операций, а из удобства решения класса;

- достаточно и для использования, что с одного достаточно обработки ;

- операции с общепринятых ;

- данным в уровня имена, ;

- в языке предусмотрен широкий данных по с машинных .

Таким , высокого в мере . Они облегчают и повышают программ.

алгоритмического :

- ;

- синтаксис;

- .

— это фиксированный для набор , т.е. "букв ", из должен текст на — никакие в тексте не .

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

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

высокого на:

- процедурные;

- ;

- .

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

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

классов к тому, что на разработано алгоритмических . , широкое и признание 10-15 . них в первую отметить: и - языки, для научно-технических , – для решения , Basic – для вычислительных в режиме. В из этих использовать для не своего . , как правило, не удобным.

В то же в 60-х разрабатывать широкой – языки. они по принципу узко-ориентированных . них наиболее PL/1, , C, C+ , Modula, Ada. , как универсальное , широко-ориентированные во конкретных ок менее [3].

языки- (, , Mercury, KLO и др.) не на алгоритма , а на систематическое и задачи с тем, следовало из . В этих что дано и что . При этом задачи на ЭВМ.

Объектно-ориентированные ( Pascal, C++, , Caml. и др.). объектно-ориентированных в стремлении с обрабатывающими эти в единое - .

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

- объект;

- ;

- метод ;

- ;

- класс .

— совокупность ( ) определенных и их обработки ( ).

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

— это действий над или его .

Событие — это состояния .

— это совокупность , общностью к ним обработки или .

различные , которые важнейших подхода:

- ;

- .

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


может от него . При подклассов данных и и объектов .

Фактически можно как программирование , когда во случайного, процедур и делается на их .

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

2. современных высокого

2.1 современных

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

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

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

имеет – символов, использовать при на этом . версии и же языка различаться .

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

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

По трансляции на:

  • компиляторы

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

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

По ( построения) на:

Машинно-ориентированные ().

значительным переход к . Не очень , бы, шаг — переход к машинных — на самом значение.

не было в хитроумные команд на . Более , одинаковые по кодировались образом в от параметров.

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

Вместе с тем, к языку в и некоторые (по мере, на ) стороны. невозможным хитроумных тем, что упомянуты .

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

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


.

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

языков в е время .

Си его разновидности, , , бейсик и

Си [C] - язык уровня, Ритчи в 1970- гг. на базе . Используется на и . Является операционной , однако и вне системы, для и эффективных , включая и . Для IBM PC имеется ряд языка Си, в том - C (фирмы ), C и Quick C ( ), а также C ( Symantec). из версий работу с Си и ++.

++ [C++] - Язык уровня, Страустрапом на Си. Является его , реализующей программирования. для сложных . Для IBM PC популярной Turbo C++ (США).

C# (C ) – “ Си ”: объектно-ориентированный яык , о которого в г. фирма . По характеру он C++ и Java и для программ, C и С++ для того, они более Интернет-приложения. , что C # тесно с XML[6].

Паскаль [ - с французского - a la Selection et la de la Litterature] - - язык уровня, в 1960-х гг. , первоначально для в университетах. в французского века .

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

является «» Паскаль; в этих . Но Delphi для работы с объектами ( , кнопок, ), а для обработки данных. он популярен при Windows- .

В году в IBM группой во с Джоном ( Backus) был программирования .

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

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

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


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

Бейсик [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), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий[8].

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

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

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


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

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

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

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

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

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

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

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

Несомненно надо рассказать и о некоторых языках программирования созданных у нас на родине. Один из таких языков является Рефал, разработанный у нас в России (СССР), в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.

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

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

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