Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (История развития языков программирования).pdf
Добавлен: 31.03.2023
Просмотров: 56
Скачиваний: 1
- инкапсуляция;
- наследование.
Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса (т. е. скрытие деталей, несущественных для использования объекта). Инкапсуляция (объединение) означает сочетание данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение.
Класс может иметь образованные от него подклассы. При построении подклассов исполняется наследование данных и методов обрабатывания объектов исходного класса. [2]
Фактически объектно-ориентированное программирование возможно расценивать равно как модульное программирование нового уровня, если взамен в значительном ненамеренного, автоматического организации операций и данных акцент делается в их коннотационную взаимосвязь.
Программа в объектно-ориентированном языке, решая определенную проблему, согласно сути, представляет часть мира, принадлежащую к данной проблеме. Описание действительности в форме системы взаимодействующих объектов естественнее, нежели в фигуре взаимодействующих операций. [2]
Программа – алгоритм, записанный на языке программирования. Программа – последовательность операторов языка. Языки программирования – искусственные языки, строго формализованные; существует правила записи операторов языка – синтаксис языка.
- Машинный язык (40-50 годы XX в.).
Программы на машинном языке – очень длинные последовательности единиц и нулей, являлись машинно зависимыми, т.е. для каждой ЭВМ необходимо было составлять свою программу.
- Ассемблер (начало 50-ых годов XX в.).
Вместо 1 и 0 программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т.д.), которые похожи на английские слова. Программы на ассемблере также являются машинно-зависимыми. Для преобразования в машинный код использовался компилятор (спец. программа – переводчик в машинный код).
С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-level language). Эти языки были Машино независимыми (не привязаны к опред. типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы.
Примеры таких языков: FORTRAN (FORmula TRANslator; 1954) предназначен для научных и технических расчетов; COBOL (1959) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) – Common Business-Oriented Language); язык BASIC (Beginner’s All Purpose Instuction Code – универсальный язык символьных инструкций для начинающих) (1964 г.)
- Алгоритмические языки программирования.
С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора, цикла и практически отказ от частого использования операторов перехода (goto). К этим языкам относятся: язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970); язык Си, позволяющий быстро и эффективно создавать программный код (1971)
(90-ые г. XX в.). В основу этих языков положены программные объекты, которые объединяют данные и методы их обработки. В этих языках сохранялся алгоритмический стиль программирования. Для них были разработаны интегрированные среды программирования, позволяющие визуально конструировать графический интерфейс приложений:
язык С++ (1983) - продолжение алгоритм. языка Си;
язык Object Pascal (1989) был создан на основе языка Pascal. После создания среды программирования – Delphi (1995);
язык Visual Basic(1991) был создан корпорацией Microsoft на основе языка Qbasic (1975) для разработки приложений с графическим интерфейсом в среде ОС Windows.
В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:
язык Java - объектно-ориентированный язык был разработан фирмой Sun Microsystems для создания сетевого программного обеспечения (1995);
язык JavaScript – язык сценариев Web-страниц (компания Netscape). (1995)
- Языки программирования на платформе .NET.
Интегрированная среда программирования Visual Studio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:
на языке Visual Basic .Net ( на основе Visual Basic) - 2003 г.;
на языке Visual C# (С-шарп) – на основе языков С++ и J – 2003 г.;
на языке Visual J# (J-шарп) – на основе Java и JavaScript – 2003 г.
Интерпретаторы и компиляторы
С целью того, чтобы процессор имел возможность выполнить программу, программа и данные обязаны являться загружены в оперативную память. Необходимо, чтобы в ОП был расположена программа - транслятор, автоматически переводящий с языка программирования в машинные коды. Трансляторы бывают 2-ух видов: интерпретаторы и компиляторы. Интерпретатор – программа, которая гарантирует логический переход операторов программы с одновременным их исполнением. Плюсом интерпретатора считается практичность отладки (поиск ошибок), недостаток – относительно малая скорость исполнения. Компилятор переводит целый текст программы в машинный язык и хранит его в исполнимом файле (как правило с расширением .exe).
Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора [6].
Алгоритмический язык (язык программирования) представляет собой один из способов записи алгоритма. Язык программирования является строго формализованным, то есть все команды записываются по определенным правилам и отступления от этих правил не допускаются. Например, в русском языке можно при разделении элементов перечисления поставить запятую (, ) или точку с запятой (;). А в языке программирования при записи команд нельзя изменить ни одного знака - возникает ошибка.
Правила записи команд на конкретном языке называются синтаксисом языка. Синтаксис определяет, какая команда будет считаться правильной, а какая нет. Например, в языке Basic команды CLS и FOR I=1 TO 10 считаются правильными, а команды CLERSCREEN и FOR I FROM 1 TO 10 - неправильными.
Каждая команда, записанная на языке программирования, имеет определенное значение, то есть заставляет компьютер выполнять те или иные действия. Правила, определяющие смысл команд, называются семантикой языка. Например, команда CLS вызывает очистку экрана.
Каждый язык имеет алфавит – набор символов, которые можно использовать при записи программ на этом языке. Разные версии одного и того же языка могут немного различаться алфавитом.
Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие. Языки отличаются друг от друга множеством допустимых объектов и набором операций, которые можно выполнять над этими объектами. [7]
Программа, написанная на языке программирования, представляет собою просто текст. Для того чтобы компьютер имел возможность выполнять команды, находящиеся в данной программе, необходимо перевести программу в набор понятных пк инструкций, записанных в бинарной форме (в код).
Такой перевод называется трансляцией.
По способу трансляции языки делятся на:
- компиляторы
- интерпретаторы
В компиляторах перевод всего текста программы в код осуществляется сразу, и создаются исполняемый файл, который затем можно неоднократно запускать.
В интерпретаторах при запуске программы каждая ее строчка последовательно переводится в код и выполняется; затем переводится в код и выполняется другая строчка, и так далее.
По уровню (особенностям построения) языки делятся на:
Машинно-ориентированные (ассемблеры).
Первым значительным шагом является переход к языку ассемблера. Не совсем заметный, казалось бы, этап — переход к символическому кодированию машинных установок — имел на самом деле колоссальное значение.
Программисту не надо было более углубляться в хитрые способы кодировки команд на аппаратном уровне. Более этого, нередко одинаковые по сущности команды шифровались абсолютно разным способом в зависимости от собственных параметров.
Появилась, кроме того, возможность применения макросов и меток, что, кроме того, упрощало создание, модификацию и отладку программ. Появилось в том числе и некоторое подобие переносимости — была возможность разработки единого семейства машин с аналогичной системой команд и некоего общего ассемблера для них, при этом не было потребности обеспечивать бинарную совместимость.
Вместе с этим, переход к новейшему языку скрывал в себе и определенные негативные (по крайней мере, в первый взгляд) стороны. Делалось практически невозможным применение разнообразных хи рых приемов сродни тем, что упомянуты выше.
Помимо этого, тут в первый раз в истории формирования программирования возникли 2 представления программы: в исходных текстах и в откомпилированном варианте. Сперва, до тех пор пока ассемблеры только лишь показывали мнемоники в машинные коды, одно легко переводилось в другое и назад, однако далее согласно грани возникновения подобных возможностей, равно как отметки и макросы, дизассемблирование делалось все наиболее и наиболее сложным процессом. К окончанию ассемблерной эпохи вероятность автоматической трансляции в обе стороны была утеряна полностью. В связи с данным было создано огромный число специализированных программ-дизассемблеров, исполняющих обратное преобразования, но в основной массе ситуации они с трудом имеют все шансы разделить код и данные. Помимо этого, все логическая информация (имена переменных, меток и т.п.) пропадает окончательно. В случае же проблемы о декомпиляции языков высочайшего уровня примеры неплохого решения задачи и вовсе единичны.
Каждый оператор языка представляет собой мнемоническое (условное) обозначение машинной команды. Естественно, что каждый тип процессора имеет свой набор команд, а значит, свой ассемблер. Ассемблеры используются для создания драйверов, программирования различных устройств, а также для написания фрагментов программ, где очень важно время выполнения (так как на ассемблере можно написать максимально эффективную программу [8].
Универсальные.
Иногда их делят на процедурно-ориентированные и объектно-ориентированные, но в настоящее время граница между этими видами стерлась. Эти языки используются чаще всего для решения самых разнообразных задач. И хотя каждый из языков имеет свои особенности, что делает его наиболее эффективными для решения определенного вида задач, но в принципе для решения любой задачи можно выбирать любой язык программирования.
Из числа универсальных языков программирования в наше время более распространены:
Паскаль [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 (США).