|
-13 / 10 / 2
Регистрация: 02.03.2015
Сообщений: 326
|
|
Хочу написать программу для конвертации(Транспиляции) из Perl в C++23.10.2020, 10:16. Показов 1161. Ответов 7
Метки нет (Все метки)
Хочу на Perl написать программу для конвертации(Транспиляции) из Perl в C++, в PHP, Java и др.
В перспективе: Чтобы код на любом языке можно было переделать в код на любом другом языке. Разве же это будет не прекрасно? А может есть уже готовые Транспиляторы? Спасибо.
0
|
|
| 23.10.2020, 10:16 | |
|
Ответы с готовыми решениями:
7
Я хочу написать программное обеспечение для обрезки и конвертации audio файлов Подскажите пожалуйста, хочу написать программу для перевода из 1 в 10 систему счислений Написать программу по конвертации чисел из бинарной системы в двоичную |
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||||
| 23.10.2020, 11:34 | |||||
|
1) Различия в стандартных библиотеках. В с++, конечно более богатая стандартная библиотека, чем в си, но тем не менее она ни разу не соответствует перловской. Многие стандартные средства перла превращаются в головную боль и написание велосипедов на с++. 2) Препроцессор. Вопервых программы на с++ очень плохо читаются если их писать в одном файле. Поэтому их разбивают на большее количество исходников, среди которых есть 2 стандартных типа: файлы с объявлениями функций, классов и тд, и файлы с реализацией. 3) Оптимизация. Если просто переводить код с одного языка на другой, то, даже если сохранится логика, он будет не оптимальным. Достаточно сложно в полной мере использовать макроссы, указатели, тот же препроцессор для условной компиляции, ассемблерные вставки, шаблоны, ООП, да и даже стандартную библиотеку.
0
|
|||||
|
-13 / 10 / 2
Регистрация: 02.03.2015
Сообщений: 326
|
|||||||
| 23.10.2020, 11:46 [ТС] | |||||||
|
Для ввода возьму вот эту программульку:
Это файл журнала: Фамилия, 5, 3, 4, 2 1. читаем файл 2. Вытаскиваем цифры 3. Считаем средний балл 4. Выводим всё Добавлено через 1 минуту Prohorov,5,1,5,1 Batarejkin,5,2,3,3 Добавлено через 5 минут
0
|
|||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
||
| 23.10.2020, 12:07 | ||
|
Кликните здесь для просмотра всего текста
есть переводчики Perl на C, но ни один из них не идеален. В идеале вам нужен переводчик, который является правильным и элегантным. Увы, вы не можете иметь оба, простой код Perl не эквивалентен простому коду C, поэтому вам либо нужно иметь перевод, который не является 100% правильным, либо так же сложен, как сам Perl. Это заставило некоторых поверить, что вы не должны пытаться перевести Perl. Точнее было бы сказать, что нужно четко понимать, чего вы хотите добиться от перевода, а не ожидать чудеса.
100% правильно легко: если ваш скрипт Perl myperl.pl тогда программа C void main(){system("perl myperl.pl")} будет делать именно то, что myperl.pl будет сделано; хотя это довольно бессмысленно. The perlcc компилятор немного более сложный, но все же, похоже, не дает большой пользы. Я не заметил perlcc быть быстрее, чем простой Perl. Кроме того, хотя код Perl может быть заведомо трудным для чтения, я предпочитаю print "Hello World\n" до 700 линии длинного чудовища, что perlcc переводит его в. Я не видел, чтобы эти программы производили что-либо, что прошло бы проверку кода, а также написанный элегантный код C. OTOH, если вам нужен компилятор, потому что вы не хотите распространять исходный код не запутанным способом, то perlcc может творить чудеса. стабильным версиям может достичь скорости ИБП, но очень ограничен в том, что он может перевести. для примера тривиального" элегантного, но не правильного " переводчика см. прототип perl2c++.pl. Это работает путем замены (нескольких) стандартных Perl-измов на C++-измы. C++ был выбран, потому что это язык высокого уровня, такой как Perl, но по-прежнему разделяет тот же самый металлический этос C. в случае простого генератора псевдослучайных чисел LCG LCG.pl, выход perl2c++.pl - это чистый и лаконичный код C++, который работает в десятки раз быстрее исходного Perl и не зависит от библиотек Perl. Он может быть расширен, чтобы искать все стандартные ответы на "как сделать X на Perl " и заменить его на "Как сделать X в C++". Тогда он мог бы успешно перевести многие простые, но реальные скрипты Perl и помочь человеку перевести нетривиальное программное обеспечение Perl в элегантный код c++. Это было бы наиболее полезно, если вы обнаружите, что пишете числовое программное обеспечение в Perl, которое должно было быть написано на C++ в первую очередь. https://askdev.ru/q/kak-konver... -c-333578/
0
|
||
|
-13 / 10 / 2
Регистрация: 02.03.2015
Сообщений: 326
|
||||||
| 23.10.2020, 12:50 [ТС] | ||||||
|
А можно поточнее. И именно на те языки которые я написал в исходном сообщении
Добавлено через 41 секунду С - это не С++ Добавлено через 1 минуту Написал для С++. Вот что оно выдало:
0
|
||||||
|
-13 / 10 / 2
Регистрация: 02.03.2015
Сообщений: 326
|
||||||
| 24.10.2020, 06:40 [ТС] | ||||||
|
Принцип работы программы - на основе регулярных выражений:
0
|
||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||
| 24.10.2020, 10:10 | |||
|
0
|
|||
|
-13 / 10 / 2
Регистрация: 02.03.2015
Сообщений: 326
|
|
| 24.10.2020, 11:45 [ТС] | |
|
Дописал для Джава.
Теперь исходную можно Транспилировать на 2 языка: С++ и Java
0
|
|
| 24.10.2020, 11:45 | |
|
Помогаю со студенческими работами здесь
8
Привет, хочу написать программу для одного китайского телефона чтобы открывать word документы Хочу написать программу для подсчета площади прямоугольника, на строке S = count(S, a, b); выдает ошибку переменная S возможно не инициализирована. Создать Таблицу конвертации для конвертации рублей России в разные валюты с учетом комиссии.
Хочу написать программу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 03.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|