Можно ли преобразовать исходники программы на C++ в Pascal?

На первом курсе писали курсовую на C++. На втором курсе сказали задание прежнее, но теперь на Pascal. Лень. Есть какие-нибудь программы, которые смогут изменить синтаксис C++ на Pascal?

0

Ответы (5):

2

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

Да и вот еще - банальная ситуация - если программа плотно работает с базой данных и написана в Visual Studio. В лоб не получится ее перевести в Delphi, так как для работы с базами данных в Delphi полно своих компонент, которых нет в Студии. Есть компоненты, которые разработаны и для VCL, и для Студии, но... в общем, если было бы актуально, но лень, то стоило бы какому студентику работу дать - он все сделал бы и за недорого...

Из своего опыта скажу - начал делать прожку на C++ Builder - захват звука с микрофона. Все почти заработало, но... в общем чего-то мне не нравилось - C++ Builder много чего позволяет делать, но я не знаю - как это сделать, тогда я весь проект загнал в Visual Studio 2010 - в обоих случаях C++, но пришлось много чего перекраивать, но в студии я добился результата в итоге намного быстрее и еще мне хотелось заюзать кнопки в виде битмапов - не TImage с обработкой события onClick, а именно полноценные кнопки - TButton (CButton в Visual Studio). В билдере, думаю, это тоже легко делается, но мне лениво было ковыряться, в студии я это сделал без всяких дополнительных библиотек буквально несколькими строчками кода - кнопки были CButton, а на них был натянут битмап... Если бы я был спецом в Visual C++, то сделал бы все быстрее, а так пришлось делать много "научного тыка"...

Поэтому, думаю, что перевод с языка на язык - было бы тоже самое плюс еще и перекройка синтаксиса...

1

Именно готовый исходник - скорее всего нет. Однако, можно преобразовать достаточно точно header (заголовочные) файлы. Способов достаточно много, (начиная от создания yacc-парсера, до простого awk&sed - все зависит от заголовочного файла и его сложности) однако, в комплекте поставки Free Pascal Compiler (FPC) есть утилита h2pas, которая преобразует заголовочные файлы в определения (интерфейсную секцию) unit-ов.

1

Прямых конвертеров нет (есть какие-то поделки, разной степени успешности), поскольку язык c++ гораздо более богаче, чем Pascal. Тем не менее для простых примеров минимально прикладывая мозг реально перевести ручками программу с одного языка на другой.

1

Как ж тут преобразовать, если это совершенно разные языки. Таким же примером будет преобразование английского в русский в ПРОМТе. Максимум, что можно получить, это перевод слов на другой язык. А конструкции никто не поменяет без вас.

0

Автоматически преобразовать синтаксис одного языка в другой можно только для простейших задач, но, если в программе есть какие-то специфические особенности языка, то уже ничего не выйдет. Например, в C++ вы можете столкнутся с использованием указателей, которое на Pascal перевести никак не получится. Проблема может возникнуть даже при переводе функций, т.к. C++ позволяет вернуть несколько значений через указатели, а Pascal такого не может. Если же на С++ написан объектоориентированн­ый код, то тут и подавно ничего не сделать. Pascal - это чисто процедурный язык программирования.