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

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

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

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

Добавлен: 30.03.2023

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

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

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

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

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

Если типы сыновей одного отца не совпадают, то транслятор использует правило, позволяющее ему продолжить работу. Например, если один из сыновей имеет целый, а другой - настоящий тип, то такое правило может указывать, что отец должен иметь действительный тип. Однако возможны недопустимы сочетания типов, например, когда один сын имеет целый (I) тип, а второй - строчный (C). Для такой комбинации типов не существует правила разрешения, и поэтому транслятор выдает программисту сообщение об ошибке.

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

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

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


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

Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. IDE MS Visual Studio .NET - это набор инструментов и средств разработки различного рода приложений (консольных, Windows, мобильных, Web-приложений) и сервисов. MS Visual Studio является мультипрограммным средой, поддерживает несколько языков программирования, в частности, С ++, С #.

Справочные сведения обо всех разработки компании Microsoft собраны в один программный продукт MSDN (Microsoft Developer Network).

В MS Visual Studio каждое отдельное приложение является решением (solution), состоящий из одного или нескольких проектов (project). Одновременно можно открыть только одно решение (с расширением. Sln), при работе над несколькими решениями одновременно нужно запускать несколько окон Visual Studio.

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

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

Запуск среды осуществляется через соответствующий пункт меню Пуск (Пуск После этого на экране появляется стартовая страница (Start Page) MS Visual Studio (рис. 1).

Рис. 1. Стартовая страница MS Visual Studio 2018

Элементы графического интерфейса MS Visual Studio характерные для Windows-программ. Размер и форма окон определяется конкретной конфигурацией системы. Пользователь имеет возможность изменять размер и расположение отдельных элементов, сворачивать их с тем, чтобы увеличить место для других, необходимых в данный момент, элементов.

В главном окне Visual Studio можно выделить несколько основных элементов (рис. 2):

  • меню и набор инструментальных панелей, где сосредоточены команды для работы в IDE;
  • окно Проводник решений (Solution Explorer), что позволяет просматривать состав проектов, входящих в решение в виде иерархической структуры, а также связи между проектами и их компонентами;
  • окно редактора, служит для набора текста программы и поддерживает авто дополнение и подсветку синтаксису;
  • окно вывода состояния Output, в котором отображается информация о ходе построения (сборки) программы и выявленные ошибки.

Размер этих зон и их расположение на экране пользователь может настраивать по собственному желанию.

Рис. 2. Главное окно Visual Studio 2018

Создание консольного приложения

Для создания проекта нужно выбрать соответствующий пункт меню среды Project) или нажать комбинацию клавиш Ctrl + Shift + N.4New4(File При этом появляется диалоговое окно New Project, которое позволяет создавать различные типы проектов (рис. 3).

Рис. 3. Окно New Project

Чтобы создать консольного приложения, следует в разделе Project Types (Тип проекта) указать значение Win32, а в разделе Templates (Шаблон) - значение Win32 Console Application (Консольное приложение). После дальнейшего указания имени проекта, его местонахождение и нажатия кнопки Ok осуществляется активизация мастера создания и применения (Application Wizard), который позволяет задать нужные параметры применения (рис. 4).

Рис. 4. Окно мастера Application Wizard

Создание проекта приводит к созданию на диске проекта указанного типа, а также создается решения по указанным названием (вместе со ссылками на проект).

Просмотреть содержимое проекта, изображенный деревом файлов, которые его образуют, можно в окне Solution Explorer (рис. 5).

Рис. 5. Окно Solution Explorer

После создания пустого проекта следует добавить в него по крайней мере исходный файл (.срр), который будет содержать программный код (например, New Item).4Project

3.4. Объектно-ориентированные языки

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

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


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

Пионером данного направления явился язык Смолток (Smalltalk), первоначально предназначенный для реализаций функций машинной графики. Работа над языком началась в 1970 г. В исследовательской лаборатории XEROX (США), а закончилась в 1980 г. окончательным вариантом интерпретатора Smalltalk-80. Данный язык оригинален тем, что его синтаксис очень компактен и базируется исключительно на понятии объекта. В нем отсутствуют операторы или данные, все, что входит в Смолток, является объектами, а объекты общаются друг с другом исключительно с помощью сообщений. В настоящее время версия VisualAge for Smalltalk активно развивается компанией IBM.

К наиболее распространенным современным языкам объектно-ориентированного программирования относятся C++ и Java.

Язык C++ был разработан в начале 80-х гг. Бьярном Страуструпом в лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в основе которой лежал язык С, дополненный элементами языков BCPL, Simula-67 и Алгол-68. Более ранние версии языка были известны как «С с классами». В июле 1983 г. C++ был впервые использован за пределами исследовательской группы автора, однако тогда еще многие особенности языка не были придуманы. К 1990 г. была выпущена третья версия языка C++, стандартизированная американским государственным комитетом стандартов ANSI. В 1990 г. сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка получила название Java. С января 1995 г. Java получает распространение в Internet.

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

Синтаксис языков C++ и Java практически полностью совпадает. Принципиальным различием является то, что язык C++ компилируемый в машинный код, a Java – в платформо-независимый байт-код (каждая команда занимает один байт), этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-машины (Java Virtual Machine), версии которой созданы сегодня для любых платформ. С точки зрения возможностей объектно-ориентируемых средств, Java имеет ряд преимуществ перед C++. Язык Java имеет более гибкую и мощную систему инкапсуляции информации.


Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что способствует надежности и читабельности кода. Язык C++ обладает сложной неадекватной и трудной для понимания системой наследования. Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, но синтаксическая избыточность C++ и здесь принуждает к выбору языка Java. Сегодня Java по популярности занимает второе место в мире после Бейсика.

Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (корпорации Borland International), начиная с версии 5.5, входит специальная библиотека ООП Turbo Vision.

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

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

К объектно-ориентированным системам визуального проектирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня. VBA (Visual Basic for Application) является общей языковой платформой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирования языков Бейсик-диалектов. VBA помогает довольно сильно расширить возможности приложений за счет написания макросов. VBA позволяет создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним необходимый для конкретного случая программный код. С помощью VBA можно производить интеграцию между различными программными продуктами. Программы на языке VBA для приложений создаются двумя способами: в автоматическом режиме как результат построения клавишной макрокоманды или путем написания программного кода.