3. Первые языки программирования высокого уровня.
С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-level language). Эти языки были Машино независимыми (не привязаны к опред. типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы.
Примеры таких языков: FORTRAN (FORmula TRANslator; 1954) предназначен для научных и технических расчетов; COBOL (1959) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) – Common Business-Oriented Language); язык BASIC (Beginner’s All Purpose Instuction Code – универсальный язык символьных инструкций для начинающих) (1964 г.)
4. Алгоритмические языки программирования.
С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора, цикла и практически отказ от частого использования операторов перехода (goto). К этим языкам относятся: язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970); язык Си, позволяющий быстро и эффективно создавать программный код (1971)
5. Языки объектно-ориентированного программирования
(90-ые г. XX в.). В основу этих языков положены программные объекты, которые объединяют данные и методы их обработки. В этих языках сохранялся алгоритмический стиль программирования. Для них были разработаны интегрированные среды программирования, позволяющие визуально конструировать графический интерфейс приложений:
язык С++ (1983) - продолжение алгоритм. языка Си;
язык Object Pascal (1989) был создан на основе языка Pascal. После создания среды программирования – Delphi (1995);
язык Visual Basic(1991) был создан корпорацией Microsoft на основе языка Qbasic (1975) для разработки приложений с графическим интерфейсом в среде ОС Windows.
6. Языки программирования для компьютерных сетей.
В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:
язык Java - объектно-ориентированный язык был разработан фирмой Sun Microsystems для создания сетевого программного обеспечения (1995);
язык JavaScript – язык сценариев Web-страниц (компания Netscape). (1995)
7. Языки программирования на платформе .NET.
Интегрированная среда программирования Visual Studio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:
на языке Visual Basic .Net ( на основе Visual Basic) - 2003 г.;
на языке Visual C# (С-шарп) – на основе языков С++ и J – 2003 г.;
на языке Visual J# (J-шарп) – на основе Java и JavaScript – 2003 г.
Интерпретаторы и компиляторы
Для того, чтобы процессор мог выполнить программу, программа и данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП был размещена программа - транслятор, автоматически переводящий с языка программирования в машинные коды. Трансляторы бывают двух типов: интерпретаторы и компиляторы. Интерпретатор – программа, которая обеспечивает последовательный перевод операторов программы с одновременным их выполнением. Достоинством интерпретатора является удобство отладки (поиск ошибок), недостаток – сравнительно малая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (обычно с расширением .exe).
Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора [6].
Алгоритмический язык (язык программирования) представляет собой один из способов записи алгоритма. Язык программирования является строго формализованным, то есть все команды записываются по определенным правилам и отступления от этих правил не допускаются. Например, в русском языке можно при разделении элементов перечисления поставить запятую (, ) или точку с запятой (;). А в языке программирования при записи команд нельзя изменить ни одного знака - возникает ошибка.
Правила записи команд на конкретном языке называются синтаксисом языка. Синтаксис определяет, какая команда будет считаться правильной, а какая нет. Например, в языке Basic команды CLS и FOR I=1 TO 10 считаются правильными, а команды CLERSCREEN и FOR I FROM 1 TO 10 - неправильными.
Каждая команда, записанная на языке программирования, имеет определенное значение, то есть заставляет компьютер выполнять те или иные действия. Правила, определяющие смысл команд, называются семантикой языка. Например, команда CLS вызывает очистку экрана.
Каждый язык имеет алфавит – набор символов, которые можно использовать при записи программ на этом языке. Разнее версии одного и того же языка могут немного различаться алфавитом.
Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие. Языки отличаются друг от друга множеством допустимых объектов и набором операций, которые можно выполнять над этими объектами. [7]
Программа, написанная на языке программирования, представляет собой просто текст. Чтобы компьютер мог выполнять команды, содержащиеся в этой программе, надо перевести программу в набор понятных компьютеру инструкций, записанных в двоичной форме (в код). Такой перевод называется трансляцией.
По способу трансляции языки делятся на:
· компиляторы
· интерпретаторы
В компиляторах перевод всего текста программы в код осуществляется сразу, и создаются исполняемый файл, который затем можно неоднократно запускать.
В интерпретаторах при запуске программы каждая ее строчка последовательно переводится в код и выполняется; затем переводится в код и выполняется другая строчка, и так далее.
По уровню (особенностям построения) языки делятся на:
Машинно-ориентированные (ассемблеры).
Первым значительным шагом представляется переход к языку ассемблера. Не очень заметный, казалось бы, шаг — переход к символическому кодированию машинных команд — имел на самом деле огромное значение.
Программисту не надо было больше вникать в хитроумные способы кодирования команд на аппаратном уровне. Более того, зачастую одинаковые по сути команды кодировались совершенно различным образом в зависимости от своих параметров.
Появилась также возможность использования макросов и меток, что также упрощало создание, модификацию и отладку программ. Появилось даже некое подобие переносимости — существовала возможность разработки целого семейства машин со сходной системой команд и некоего общего ассемблера для них, при этом не было нужды обеспечивать двоичную совместимость.
Вместе с тем, переход к новому языку таил в себе и некоторые отрицательные (по крайней мере, на первый взгляд) стороны. Становилось почти невозможным использование всяческих хитроумных приемов сродни тем, что упомянуты выше.
Кроме того, здесь впервые в истории развития программирования появились два представления программы: в исходных текстах и в откомпилированном виде. Сначала, пока ассемблеры только транслировали мнемоники в машинные коды, одно легко переводилось в другое и обратно, но затем по мере появления таких возможностей, как метки и макросы, дизассемблирование становилось все более и более трудным делом. К концу ассемблерной эры возможность автоматической трансляции в обе стороны была утеряна окончательно. В связи с этим было разработано большой количество специальных программ-дизассемблеров, осуществляющих обратное преобразования, однако в большинстве случаев они с трудом могут разделить код и данные. Кроме того, вся логическая информация (имена переменных, меток и т.п.) теряется безвозвратно. В случае же задачи о декомпиляции языков высокого уровня примеры удовлетворительного решения проблемы и вовсе единичны.
Каждый оператор языка представляет собой мнемоническое (условное) обозначение машинной команды. Естественно, что каждый тип процессора имеет свой набор команд, а значит, свой ассемблер. Ассемблеры используются для создания драйверов, программирования различных устройств, а также для написания фрагментов программ, где очень важно время выполнения (так как на ассемблере можно написать максимально эффективную программу [8].
Универсальные.
Иногда их делят на процедурно-ориентированные и объектно-ориентированные, но в настоящее время граница между этими видами стерлась. Эти языки используются чаще всего для решения самых разнообразных задач. И хотя каждый из языков имеет свои особенности, что делает его наиболее эффективными для решения определенного вида задач, но в принципе для решения любой задачи можно выбирать любой язык программирования.
Среди универсальных языков программирования в настоящее время наиболее распространены:
2.1 Си его разновидности· Си [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].
Паскаль [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.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. C++,Turbo Pasckal,QBasik:Эволюция языков программирования http://langprog.far.ru/historylangprog.html. -27.05.10.
2. Информатика/Курносов А.П., Кулев С.А., Улезько А.В. и др.; Под ред. А.П. Курносова.-М.: КолосС, 2005.-272 с
3. Макарова Н.В. Информатика /под ред. Проф. Н.В. Макаровой. — М.: Финансы и статистика, 1997. — 768 с.: ил.
4. Малышев Р.А. Локальные вычислительные сети: Учебное пособие/ РГАТА. – Рыбинск, 2005. – 83 с.
5. Островский В.А. Информатика: учеб. для вузов. М.: Высшая школа, 2000. —511 с.: ил.
6. Семакин И.А., Информатика: Базовый курс /Семакин И.А., Залогова Л., Русаков С., Шестакова Л. – Москва: БИНОМ.,2005. – 105с.
7. Симонович С.В.Информатика. Базовый курс/Симонович С.В. и др. — СПб.: издательство "Питер", 2000. — 640 с.: ил.
... времени на возню с файлами на дисках или ожидание ввода, не смогут продемонстрировать какое-то впечатляющее увеличение скорости. 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2.1. Машинно – ориентированные языки Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и ...
... . Например, не существует типа матрица с операцией обращения или типа строка с операцией конкатенации. Если пользователю понадобятся подобные типы, он может определить их в самом языке. Программирование на С++ по сути сводится к определению универсальных или зависящих от области приложения типов. Хорошо продуманный пользовательский тип отличается от встроенного типа только способом определения, но ...
... программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами. Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между ...
... . И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi. 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI 4.1 Задача 1. Примитивный калькулятор 1. Войдите в среду Delphi, дважды щелкнув мышью на пиктограмму Delphi или через меню “ ...
0 комментариев