Главная страница
Навигация по странице:

  • Языки объектно-ориентированного программирования (ООП)

  • Функциональные языки

  • Логические языки

  • 1.2 Классификация языков программирования

  • Учебное пособие по дисциплине Разработка языков программирования высокого уровня


    Скачать 1.74 Mb.
    НазваниеУчебное пособие по дисциплине Разработка языков программирования высокого уровня
    Дата05.03.2023
    Размер1.74 Mb.
    Формат файлаdocx
    Имя файлаLektsii_YaPVU_Lukinova_2_semestr.docx
    ТипУчебное пособие
    #970477
    страница2 из 20
    1   2   3   4   5   6   7   8   9   ...   20

    Глава 1. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКОВ

    ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ



    1.1 Категории языков программирования



    Императивные языки


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

    • Понятие «переменной», являющейся базовым объектом языка и абстрактным аналогом ячейки оперативной памяти;

    • Операторы ввода/вывода данных в/из ячейки оперативной памяти;

    • Операторы присваивания, отражающие пересылки данных между ячейками;

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

    К данной категории относятся классические языки, такие как Fortran,

    Algol, C, C++, Pascal и пр.

    Пособие посвящено вопросам разработки и построения именно императивных языков программирования высокого уровня. Другие категории языков рассмотрены в ознакомительном порядке.

    Языки объектно-ориентированного программирования (ООП)

    Все используемые на сегодняшний день языки, такие как Visual C++, Delphi, Fortran90, ADA95 и пр., содержат объектную модель данных и обладают, наряду с императивными, также свойствами ООП, т.е., по сути, они являются императивными языками, но с объектной надстройкой. Только язык SmallTalk80 остаётся единственным в чистом виде языком ООП. Наиболее близким к парадигме ООП на сегодняшний день является также и язык Java. В нашем курсе пониманию идей, которые были положены в основу ООП, посвящена глава 5.

    Функциональные языки

    Осуществляют вычисления с помощью математических функций над двумя структурами данных: атомами (символами языка) и списками (последовательностью атомов). Понятия переменной, как модели ячейки оперативной памяти, оператора, выполняющего действия над содержимым ячеек в таких языках отсутствуют. Поэтому для реализации функциональных языков требуется не неймановская архитектура, однако таковой на сегодняшний день не существует. Первым языком (и наиболее распространённым), поддерживающим парадигму функционального программирования, является язык LISP. Затем возникли его диалекты, такие как Scheme, ML, COMMON LISP, Haskell, которые приобрели некоторые императивные свойства: переменные, операторы присваивания и цикла. Это объясняется неэффективной реализацией чисто функционального языка на ЭВМ, сконструированной в соответствии с архитектурой фон Неймана.

    Логические языки

    Основаны на символьном исчислении высказываний и логике предикатов. Здесь не существует порядка выполнения команд, задаваемого операторами действий императивным языком. Система реализации ЭВМ сама выбирает порядок выполнения команд в соответствии с правилами логического вывода, который приведёт к нужному результату. Характерным представителем логического программирования является язык Prolog и его диалекты. Эффективность реализации логических языков в архитектуре фон Неймана также оставляет желать лучшего. Однако, для создания экспертных систем, основанных на продукционных правилах, логические языки подходят абсолютно.

    1.2 Классификация языков программирования


    Классифицировать ЯП можно по различным основаниям, например, традиционно существует классификация по уровню представления конструкций языка:

    • На нижнем уровне выделяют машинный язык, представляющий собой двух- и трёхадресные операции в двоичном коде;

    • Следующий уровень – это ассемблеры, т.е. языки, конструктивно представляющие собой команды различной адресности, но оперирующие уже мнемоникой (буквенными символами) при обозначении той или иной команды вместо числового двоичного кода операции и идентификаторов операндов операции;

    • Верхний уровень – языки программирования высокого уровня (ЯПВУ), которые построены по принципам естественного языка, т.е. состоят из слов и предложений (операторов или команд), сконструированных из латинского или русского алфавита.

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

    1. Научные приложения (языки типа Fortran), для которых обязательным требованием является наличие:

    • Арифметики с плавающей точкой, т.е. реальных чисел;

    • Массивов, для реализации операций с векторами и матрицами;

    • Циклических конструкций, для осуществления итерационных вычислений.

    1. Коммерческое направление (язык Cobol, электронные таблицы типа Excel)

    • Выполнение операций с фиксированной точкой;

    • Генерацию различных отсчётов, а, следовательно, должна быть мощная обработка строковых данных;

    • Возможность обрабатывать большие объёмы данных.

    1. Системы искусственного интеллекта (языки Lisp, Prolog) ориентированы на задачи обработки текстовых символов, вывод решений в нестандартных ситуациях, общение с пользователем на естественном языке.

    2. В системном программировании необходимы средства низкого уровня для написания программ (драйверов) связи с аппаратурой. Наиболее подходящим языком здесь является язык C, т.к. в своём составе он имеет набор битовых операций.

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

    4. Кроме того, с развитием Интернет-технологии и облачных сервисов постоянно появляется ряд языков, используемых для разработки Web-приложений (Python, PHP, R и другие).


    1   2   3   4   5   6   7   8   9   ...   20


    написать администратору сайта