Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения) — страница 3

  • Просмотров 7348
  • Скачиваний 390
  • Размер файла 44
    Кб

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

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

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

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

соответствия типов данных, в нём жёстко регламентированы структура и место описания программных объектов. В силу выше сказанного, даже ручной перевод программы на Паскале на язык СИ требует от программиста приложения значительных интеллектуальных усилий, а реализация конвертора для языка Паскаль возможна лишь при наличии существенных временных и материальных ресурсов. Помимо синтаксических ограничений входная программа

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