Файл: Обзор языков программирования высокого уровня (Языки программирования).pdf
Добавлен: 01.04.2023
Просмотров: 98
Скачиваний: 2
Объектно-ориентированный подход использует следующие базовые понятия:
- объект;
- свойство объекта;
- метод обработки;
- событие;
- класс объектов.
Объект — совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).
Свойство — это характеристика объекта и его параметров. Все объекты наделены определенными свойствами, совокупность которых выделяют (определяют) объект.
Метод — это набор действий над объектом или его свойствами.
Событие — это характеристика изменения состояния объекта.
Класс — это совокупность объектов, характеризующихся общностью применяемых к ним методов обработки или свойств.
Существуют различные объектно-ориентированные технологии, которые обеспечивают выполнение важнейших принципов объектного подхода:
- инкапсуляция;
- наследование.
Инкапсуляция означает скрытие полей объекта, чтобы к ним можно было получить доступ только методами класса (то есть скрыть детали, которые не являются необходимыми для использования объекта). Инкапсуляция (унификация) означает комбинацию данных и алгоритмов их обработки, в результате чего и данные, и процедуры теряют свое независимое значение во многих отношениях.
Класс может иметь подклассы, полученные из него. При создании подклассов данные и методы обработки объектов исходного класса наследуются.[5]
Фактически, объектно-ориентированное программирование можно рассматривать как модульное программирование нового уровня, когда вместо практически случайной механической комбинации процедур и данных акцент делается на их семантическую связь.
Программа на объектно-ориентированном языке, решающая некоторую проблему, фактически описывает ту часть мира, которая связана с этой проблемой. Описание реальности в виде системы взаимодействующих объектов более естественно, чем в форме взаимодействующих процедур.
1.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)
Языки объектно-ориентированного программирования
Эти языки основаны на программных объектах, которые объединяют данные и методы их обработки. Эти языки сохранили стиль алгоритмического программирования. Для них были разработаны интегрированные среды программирования, позволяющие визуально оформить графический интерфейс приложения:
- язык С++ (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)
Языки программирования на платформе .NET.
Интегрированная среда программирования Visual Studio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:
- на языке Visual Basic .Net ( на основе Visual Basic) - 2003 г.;
- на языке Visual C# (С-шарп) – на основе языков С++ и J – 2003 г.;
- на языке Visual J# (J-шарп) – на основе Java и JavaScript – 2003 г.
Интерпретаторы и компиляторы
Чтобы процессор мог выполнить программу, программа и данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП была размещена программа - переводчик, который автоматически переводит язык программирования в машинные коды. Переводчики бывают двух типов: интерпретаторы и компиляторы. Интерпретатор - это программа, которая обеспечивает последовательный перевод операторов программы с их одновременным выполнением. Преимуществом интерпретатора является удобство отладки (поиска ошибок), недостатком - сравнительно низкая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполняемый файл (обычно с расширением .exe).
Системы объектно-ориентированного программирования содержат программу-транслятор и позволяют работать в режиме как интерпретатора, так и компилятора. На этапе разработки и отладки проекта используется режим интерпретатора, а для получения готовой программы – режим компилятора.[7]
2. Обзор современных языков программирования
Алгоритмический язык (язык программирования) представляет собой один из способов записи алгоритма. Язык программирования является строго формализованным, то есть все команды записываются по определенным правилам и отступления от этих правил не допускаются. Например, в русском языке можно при разделении элементов перечисления поставить запятую (, ) или точку с запятой (;). А в языке программирования при записи команд нельзя изменить ни одного знака - возникает ошибка.
Правила записи команд на конкретном языке называются синтаксисом языка. Синтаксис определяет, какая команда будет считаться правильной, а какая нет. Например, в языке Basic команды CLS и FOR I=1 TO 10 считаются правильными, а команды CLERSCREEN и FOR I FROM 1 TO 10 - неправильными.
Каждая команда, записанная на языке программирования, имеет определенное значение, то есть заставляет компьютер выполнять те или иные действия. Правила, определяющие смысл команд, называются семантикой языка. Например, команда CLS вызывает очистку экрана.
Каждый язык имеет алфавит – набор символов, которые можно использовать при записи программ на этом языке. Разнее версии одного и того же языка могут немного различаться алфавитом.
Программа, написанная на языке программирования, состоит из команд (операторов), которые устанавливают последовательность действий. Эти действия выполняются на некоторых объектах. Объектами могут быть числа, текстовые строки, переменные и другие. Языки отличаются друг от друга набором допустимых объектов и набором операций, которые можно выполнять над этими объектами.
Программа, написанная на языке программирования - это просто текст. Чтобы компьютер мог выполнять инструкции, содержащиеся в этой программе, необходимо перевести программу в набор инструкций, которые понимает компьютер, записанных в двоичной форме (код). Этот перевод называется трансляцией.
По способу трансляции языки делятся на:
- компиляторы
- интерпретаторы[8]
В компиляторах перевод всего текста программы в код осуществляется сразу, и создаются исполняемый файл, который затем можно неоднократно запускать.
В интерпретаторах при запуске программы каждая ее строчка последовательно переводится в код и выполняется; затем переводится в код и выполняется другая строчка, и так далее.
По уровню (особенностям построения) языки делятся на:
Машинно-ориентированные (ассемблеры).
Переход на ассемблер кажется первым значительным шагом. Казалось бы, не очень заметный шаг - переход к символическому кодированию машинных инструкций - на самом деле имел большое значение.
Программисту больше не приходилось вникать в хитроумные способы кодирования инструкций на аппаратном уровне. Более того, зачастую по существу идентичные команды кодируются совершенно разными способами, в зависимости от их параметров.
Также появилась возможность использовать макросы и метки, что также упростило создание, модификацию и отладку программ. Было даже видимость переносимости - было возможно разработать целое семейство машин с подобным набором команд и некоторым общим ассемблером для них, без необходимости обеспечивать двоичную совместимость.
В то же время переход на новый язык был чреват некоторыми негативными (по крайней мере, на первый взгляд) сторонами. Стало почти невозможно использовать всевозможные умные методы, похожие на упомянутые выше.
Кроме того, здесь впервые в истории развития программирования появились два представления программы: в исходном коде и в скомпилированном виде.
Сначала, когда ассемблеры переводили только мнемонику в машинные коды, ее можно было легко перевести на другой и обратно, но затем, когда появились такие возможности, как метки и макросы, разборка становилась все труднее. К концу эры ассемблера способность автоматически переводить в обоих направлениях была полностью утрачена. В связи с этим было разработано большое количество специальных программ дизассемблера, которые выполняют обратные преобразования, но в большинстве случаев они едва ли могут разделять код и данные. Кроме того, вся логическая информация (имена переменных, метки и т. д.) Теряется безвозвратно. В случае проблемы декомпиляции языков высокого уровня примеры удовлетворительного решения проблемы встречаются довольно редко.
Каждый оператор языка является мнемоническим (обычным) обозначением машинной инструкции. Естественно, каждый тип процессора имеет свой собственный набор инструкций, что означает его собственный ассемблер. Ассемблеры используются для создания драйверов, программирования различных устройств, а также для записи фрагментов программ, где время выполнения очень важно (поскольку вы можете написать наиболее эффективную программу на ассемблере.
Универсальные.
Иногда они делятся на процедурно-ориентированные и объектно-ориентированные, но в настоящее время граница между этими типами размыта. Эти языки чаще всего используются для решения самых разных задач. И хотя каждый из языков имеет свои особенности, что делает его наиболее эффективным для решения определенного типа проблемы, в принципе, любой язык программирования может быть выбран для решения любой проблемы.[9]
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 (США).