Информационная система "Конференции"
Международная конференция молодых ученых по математическому моделированию и информационным технологиям
29-31 октября 2002 года, Новосибирск, Академгородок
Тезисы докладов
Информационные технологии
Конвертер с расширения языка Паскаль в С++
Институт систем информатики СО РАН (Новосибирск)
В данной работе описываются некоторые схемы трансляции (представляющие, по мнению авторов, теоретический интерес), разработанные при создании конвертера с существенного расширения Pascal (далее M-Pascal) в С++. Конвертер был написан по заказу крупной зарубежной телекоммуникационной корпорации и должен был не только транслировать исходный M-Pascal код в функционально эквивалентный С++ код, но и отвечать ряду требований. Совокупность расширений Pascal и требований к конвертеру значительно повлияла на разработку схем трансляции.
В работе описаны схемы трансляций следующих расширений M-Pascal:
- инициализация переменных - синтаксически близкая к инициализации в С, но с несколько другой семантикой;
- условная компиляция - отличающаяся от условной компиляции в С/С++ с использованием программных констант.
Также рассмотрены аспекты реализации основных требований к конвертеру, которые были выставлены заказчиком:
- Сохранения размещения данных - побитовое соответствие типов данных M-Pascal и соответствующих им типов С++.
- Трансляций директив условной компиляции.
- С++ код должен быть текстуально близок к исходному, например сохранение текстового представления индексных выражений в массивах (диапазоны и типы индексов в Паскале отличаются от в С++), сохранение операций копирования и сравнения переменных сложных типов.
Помимо вышесказанного, авторами предлагаются схемы трансляций вложенных гнезд процедур, как традиционная, путем выноса вложенных процедур вне гнезда, так и с сохранением изначальной структуры вложенности. В работе представлены как достоинства? так и недостатки обоих подходов.
Приведено достаточно большое число примеров, наглядно описывающих тот или иной подход в реализации. Достаточно много уделено описанию особенностей и возможностей С++ компилятора GCC (v.2.95), используемый как конечная программная платформа.
| Дополнительные материалы: | HTML |
Примечание. Тезисы докладов публикуются в авторской редакции
© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск
Дата последней модификации: 06-Jul-2012 (11:47:01)