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

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

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

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

Добавлен: 19.06.2023

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

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

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

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

• последовательности вызова процедур генерируются автоматически; программисту нет необходимости описывать помещение аргументов функции в стек и их извлечение оттуда;

• для описания структур управления программист может использовать также такие ключевые слова, как if, while; последовательности машинных команд, соответствующие этим описаниям, транслятор генерирует динамически.

Второе различие между языками Ассемблера и языками программирования системного уровня состоит в типизации. В сильно типизированных языках требуется, чтобы программист заранее декларировал способ использования каждого фрагмента информации, и затем уже языковые средства препятствуют применению ее каким-либо иным способом. В слабо же типизированных языках на способ обработки информации не налагается предварительных ограничений; интерпретация каждого элемента данных определяется только тем, как он фактически используется, без учета каких-либо предварительных объявлений.

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

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

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


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

В последнее время внимание разработчиков программного обеспечения обращено на объектно-ориентированный подход к программированию. По сравнению с традиционными языками объектно-ориентированные языки имеют много преимуществ. Модульность и абстрактные типы данных помогают отделить процедурную и декларативную спецификации от их реализации. Динамическая связка увеличивает гибкость языка программирования, позволяя вводить новые классы объектов (типы данных) без необходимости модификации всей программы. Механизм наследования и динамическая связка дают возможность многократно использовать одни и те же модули. Примерами объектно-ориентированных языков могут служить С++, Delphi.

Процедурно-ориентированные языки программирования

Процедурно-ориентированные языки программирования относятся к машинно-независимым. Они являются основными языками описания алгоритмов и имеются в математическом обеспечении по существу всех современных вычислительных машин. Операционная система ЕС ЭВМ позволяет использовать при программировании такие языки, как Алгол, Фортран, Кобол и ПЛ/1, относящиеся к этой группе. Будучи почти независимыми от конкретной вычислительной машины, они приближаются по синтаксису к естественным языкам.

Прежде всего в настоящее время известны такие специализированные языки, ориентированные на организацию диалогового взаимодействия, как АПЛ и БЕЙСИК. В состав этих языков введены операторы, предусматривающие различные формы выдачи информации как о решаемой задаче, так и о ходе работы ЭВМ в целом, операторы для ввода информации с терминалов и пр. Однако написание всего прикладного ПО САПР на диалоговом языке программирования может привести к снижению эффективности программ по занимаемой памяти и быстродействию. Поэтому для разработки программных модулей, реализующих функции диалога, часто применяются процедурно-ориентированные языки программирования, с помощью которых записываются и другие части прикладного ПО.


Для решения большинства научно-технических и инженерных задач широко используются алгоритмические языки Фортран-IV, Алгол-60, Бейсик и др. Алгоритмический язык Кобол ориентирован на решение экономических задач. Разработан целый ряд специализированных языков. Так, например, языки Симула, GPSS, SOL и др. предназначены специально для решения задач моделирования. В настоящее время широкое распространение получил язык ПЛ-1, сочетающий в себе достоинства таких языков, как Фортран, Алгол и Кобол. В последнее время разработаны и находят применение новые алгоритмические языки высокого уровня, предоставляющие пользователю целый ряд дополнительных возможностей. Среди них следует отметить языки Паскаль и Ада. Применение процедурно-ориентированных языков программирования позволяет значительно облегчить процесс программирования и прохождения задач на ЭВМ.

Проблемно–ориентированные языки программирования

При решении задач автоматизированного проектирования процесс диалога технолога-проектировщика с ЭВМ можно условно представить в виде определенного цикла действий по обработке диалоговой системой его запросов, сопровождающегося взаимным обменом информацией, что схематично представлено на рис. 6.5. Такое обобщенное представление связано с тем, что отдельные этапы проектирования контактного агрегата могут существенно отличаться друг от друга как математическим аппаратом, так и содержательной постановкой задач. Это, в свою очередь, приводит к необходимости нескольких уникальных проблемно-ориентированных языков общения с ЭВМ, рассчитанных на различные группы проектировщиков, выполняющих отдельные конкретные проектные процедуры с использованием соответствующих. приемов, терминов, правил.

Необходимо особо подчеркнуть, что при использовании проблемно-ориентированных языков (внешних языков ИВС) проектировщикам не требуется никаких специальных знаний по методам автоматизации программирования, не требуется знаний об истинной структуре ИВС, составе используемых в ней аппаратурных устройств и ЭВМ и о том, на какой ЭВМ или на каких аппаратурных устройствах ИВС будет реализована какая-нибудь часть поставленной проектировщиком задачи, либо разработанного им алгоритма.

    Принцип информационного единства, предусматривающий использование терминов, символов, условных обозначений, проблемно-ориентированных языков программирования и способа представления информации в подсистемах, средствах обеспечения и компонентах САПР, установленных в отраслях соответствующими нормативными документами.


    Фаза ввода. Она обеспечивает связь пользователя с системой и состоит из стадий ввода, контроля и хранения данных. На этой фазе обычно поступает следующая информация топология ХТС, данные о свойствах потоков, параметры блоков ХТС, последовательность вычислений в виде наименований модулей, стоимостные параметры. Большинство систем работает с информационной блок-схемой ХТС, которая должна быть подготовлена пользователем. По блок-схеме либо строится матрица инциденций, либо составляется программа на языке программирования или проблемно-ориентированном языке для передачи топологии ХТС вычислитель— ной машине. Следовательно, на стадии ввода пользователь сталкивается с необходимостью изучения либо формальных правил описания топологии, либо одного из языков описания схем на уровне языков программирования.

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

    Базовый проблемно-ориентированный язык для описания графической информации ОГРА-1 предназначен для описания графических конструкторских документов и операций их формирования в САПР.

    Автоматизация программирования. Предметом автоматизации программирования является поиск методов уменьшения интеллектуальной сложности решения задач за счет переложения части технологического цикла разработки модели на ЭВМ. В качестве примера способов приближения к этой цели можно отметить идеи, связанные с алгоритмическими языками, модульным структурным программированием и интеллектуальными ППП [3]. Первая из них связана с выработкой универсальной системы понятий для задания алгоритмов и реализации этой системы в рамках алгоритмического языка. Этот подход находит практическую реализацию в создании проблемно-ориентированных языков высокого уровня (типа ЛИСП, СИМУЛА и т. д.) и позволяет существенно упростить переход от алгоритма к программе по сравнению с машинными и машинно-ориентированными языками.

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


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

    Одним из важнейших положений, определяющих качество функционирования иерархической системы управления, является математическое и программное обеспечение. Немаловажным фактором становится и выбор языка программирования. В целом можно указать следующее. Необходимо иметь многопрограммную, приоритетно-обоснованную в реальном времени операционную систему. Наиболее широко применяемыми языками программирования являются ФОРТРАН и БЭЙСИК, но их использование не исключает и разработки специальных проблемно-ориентированных языков.

    АЛГОЛ — это проблемно-ориентированный язык предназначен он в основном для описания алгоритмов решения вычислительных задач, характерных для инженерной практики и технических наук. Язык АЛГОЛ позволяет записывать алгоритмы в привычной и удобной для человека форме и в то же время в форме, понятной цифровой вычислительной машине (ЦВМ). Алгоритм, записанный на алгоритмическом языке, называют программой.

Свойства объектно-ориентированных языков программирования

Основой объектно-ориентированных языков являются такие принципы, как: инкапсуляция; наследование; полиморфизм. -

Абстракция и инкапсуляция

Любая книга из рода “Объектно-ориентированное программирование для чайников” выделяет один из главных принципов - абстракцию. Идея состоит в разделении деталей или характеристик реализации программы на важные и неважные. Необходима для крупных проектов, позволяет работать на разных уровнях представления системы, не уточняя детали. Абстрактный тип данных представляется как интерфейс или структура. Позволяет не задумываться над уровнем детализации реализации. АТД не зависит от других участков кода. Известный афоризм Дэвида Уилера гласит: Все проблемы в информатике можно решить на другом уровне абстракции.

Инкапсуляция ограничивает доступ компонентов к другим, связывает данные с методами для обработки. Для инкапсуляции используется спецификатор доступа private.