Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения)
Категория реферата: Рефераты по информатике, программированию
Теги реферата: заболевания реферат, курсовые
Добавил(а) на сайт: Adrian.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
. Язык Паскаль позволяет чётко реализовать идеи структурного программирования и структурной организации данных.
. Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ.
. Применение языка Паскаль значительно подняло "планку" надёжности разрабатываемых программ за счёт требований Паскаля к описанию используемых в программе переменных, проверки согласованности программы при компиляции без её выполнения.
. Использование в Паскале простых и гибких структур управления: ветвлений, циклов.
С другой стороны язык программирования СИ - это универсальный язык с
богатым набором операторов и компактным способом записи выражений.
Благодаря гибкости, выразительности и компактности своей конструкции СИ
завоевал наибольшую популярность в среде профессиональных программистов и
широко используется при разработке системных и прикладных программ.
Язык СИ представляет собой удачный компромисс между желанием располагать теми возможностями, которые обычно предоставляют программисту столь понятные и удобные языки высокого уровня, и стремлением эффективно использовать особенности компьютера. Кроме набора средств, присущих современным языкам программирования высокого уровня (структурность, модульность, определяемые типы данных) в него включены средства для программирования "почти" на уровне ассемблера (использование указателей, побитовые операции, операции сдвига). Большой набор операторов позволяет писать компактные и эффективные программы. Однако, такие мощные средства требуют от программиста осторожности, аккуратности и хорошего знания языка со всеми его преимуществами и недостатками. В отличие от языков программирования типа Паскаль, требующих жесткой дисциплины программирования ограничивающих свободу программиста, содействующих устранению многих ошибок еще на стадии их трансляции, язык СИ предоставляет программисту наибольшую свободу. Однако, ответственность за корректность программ при этом полностью ложится на программиста.
В настоящее время имеется большое количество систем программирования на СИ для разных типов компьютеров. Разработано много библиотек модулей, инструментальных средств разработки и отладки, облегчающих создание новых программ. Программы на СИ обладают высокой мобильностью, без каких либо изменений они переносятся, транслируются и выполняются на машинах различного типа.
В рамках учебного проекта реализована программная система, называемая в дальнейшем конвертором, позволяющая автоматизировать процесс преобразования программ на Паскале в программы на языке СИ. На вход конвертора подается синтаксически правильная программа на Паскале, на выходе его формируется эквивалентная ей программа на языке СИ.
Задача разработки конвертора относится к классу задач автоматизации реинженеринга программ с устаревших языков на современные языки программирования и новые платформы. Разработка конвертора для языка Паскаль является достаточно трудоёмкой в силу особенностей синтаксиса и семантики языка Паскаль.
Язык Паскаль не допускает использования принципов умолчаний и сокращений, требует строгого соблюдения соответствия типов данных, в нём жёстко регламентированы структура и место описания программных объектов.
В силу выше сказанного, даже ручной перевод программы на Паскале на язык СИ требует от программиста приложения значительных интеллектуальных усилий, а реализация конвертора для языка Паскаль возможна лишь при наличии существенных временных и материальных ресурсов. Помимо синтаксических ограничений входная программа конвертора имеет ряд чисто семантических ограничений, связанных с реализацией собственно конвертора. Перечислим основные из них:
. Ограниченное использование типов данных, в полном объёме поддерживаются только арифметические типы данных.
. Вложенность блоков, в которых используются одноименные объекты, не должна превышать двух уровней.
. Процедурные блоки не должны быть внутри BEGIN-блоков, вложенность процедурных блоков не ограничивается.
. Допускается использовать только одномерные массивы с открытой правой границей (динамические массивы) в качестве параметров процедурных блоков; при этом адресуются элементы массива в Паскаль программе, начиная с нулевого элемента.
. Ограниченное использование смешения различных типов данных.
Выражения в Паскале
Конструкция языка, задающая порядок выполнения действия над элементами данных, называется выражением. Выражение состоит из операндов (operand - элемент данных, участвующий в операции), - величин и выражений, над которыми производится операция (константы и переменные всех типов, обращения к функциям); круглых скобок и знаков операций. Операции определяют действия, которые надо выполнить над операндами. Например, в выражении (X+Y-10) X, Y и 10 - операнды; а "+" и "-" - знаки операций сложения и вычитания.
В простейшем случае выражение может состоять из одной переменной или константы. Круглые скобки ставятся так же, как и в обычных арифметических выражениях для управления ассоциативностью и порядком выполнения операций.
Операции в языке Паскаль делятся на арифметические, отношения, логические (булевские), операцию @, строковые и др. Выражения соответственно называются арифметическими, отношения, булевскими, строковыми и т.д. в зависимости от того, какого типа операнды и операции в них используются.
Тип значения, вычисляемого с помощью выражения, определяется типом его операндов и знаками выполняемых над ними операций.
Операции могут быть унарными и бинарными. В первом случае операция относится к одному операнду и всегда записывается перед ним, во втором - операция выражает отношение между двумя операндами и записывается между ними.
Например, -А - унарная операция, Х+У - бинарная.
Арифметические выражения и операции.
Арифметическим называется выражение, составленное из операндов арифметического типа и использующее только знаки арифметических операций и круглые скобки. Порядок вычисления определяется скобками и старшинством операций.
Рекомендуем скачать другие рефераты по теме: анализ темы курсовой работы, эффективность реферат.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата