Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМИП.doc
Скачиваний:
17
Добавлен:
11.07.2019
Размер:
359.94 Кб
Скачать

Новейшие направления в области создания технологий программирования

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

Законы эволюции программного обеспечения

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

Чтобы облегчить себе жизнь программисты еще в 50-е годы стали использовать для программирования язык Ассемблера, который является символическим аналогом машинного языка. Этот язык точно отражает все особенности машинного языка. Именно поэтому язык Ассемблера для каждого типа компьютера свой.

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

Трансляция программ

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

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

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

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

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

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

Одними из важнейших характеристик языковых средств являются трудоемкость программирования и качество получаемого программного продукта. Качество программ определяется длиной программ (количеством машинных команд или емкостью памяти, необходимой для хранения программ), а также временем выполнения этих программ. Для языков различного уровня эти характеристики взаимосвязаны. Чем выше уровень языка (рис.1), тем меньше трудоемкость программирования, но тем сложнее средства системы программирования, привлекаемые для получения машинных программ, и тем ниже качество генерируемых программных продуктов.

Все языки программирования можно разделить на языки низкого уровня и языки высокого уровня.

Язык низкого уровня – это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код.

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

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

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

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

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

  • Паскаль – для обучения студентов «правильному» классическому программированию, благодаря своей простоте, ясности, сравнительно узкому набору возможных синтаксических конструкций наряду с их семантическим богатством. В последние годы в Западной Европе и России стал активно развиваться язык Оберон-2 (компонентный Паскаль), основанный Никлаусом Виртом на Паскале и Модуле-2, и отличающийся своей простотой, строгостью и компактностью, поддерживающий концепции модульности, структурного и объектно-ориентированного программирования;

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

  • Java – объектно-ориентированный язык для разработки Web-приложений.

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