Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49

Создание транслятора из C++ в Delphi

21.03.2014, 10:51. Показов 3103. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сдраствуйте нужно создать компелятор, что бы он переводил с языка с++ в Delfi. с клавиатуры вводиться оператор if
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2014, 10:51
Ответы с готовыми решениями:

Странное поведение транслятора
В следуюшем примере код компилируется нормально, но объект класса b не содается (пробывал на Visual studio 10 и на Borland builder 5), что...

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

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

21
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 11:54
Это не компилятор, а транслятор... И вряд ли получиться....
0
21.03.2014, 11:57

Не по теме:

читайте мою подпись

0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 12:02
Транслятор какого вида? Их ведь ровно два: интерпретатор и компилятор и от того, что целевой язык имеет высокий уровень невозможным оказывается как раз интерпретатор, так как интерпретатор есть транслятор, транслирующий каждый оператор программы непосредственно в процессе её исполнения, но после исполнения предыдущего оператора той же программы, а раз оператор исполняется, значит он в нативном коде.
0
21.03.2014, 12:09

Не по теме:

Цитата Сообщение от AntonChik Посмотреть сообщение
читайте мою подпись
не было бы офтопом, то почитали бы :)

0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 13:33
Но сути ответа это не меняет... Один в один код не переведешь, (с Delphi на c++ можно попробовать, но не наоборот) Вот поупражняемся немного, как вот это будет выглядеть на Pascal-е:
C++
1
2
3
4
int **p;
p=new int*[5];
for (int i=0; i<5; i++) *(p+i)=new int[5];
for (int i=0; i<5; i++) for (int j=0; j<5; j++) *(*(p+i)+j)=i+j;
или
C++
1
2
3
4
int *j,k=5,t;
j=&k;
*j*=2;
t=k;
?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 13:47
Цитата Сообщение от mustimur Посмотреть сообщение
Но сути ответа это не меняет... Один в один код не переведешь, (с Delphi на c++ можно попробовать, но не наоборот)
Как раз с delphi на c++ нельзя. Куда денешь спецификатор видимости published? Это не синоним public, которой на delphi тоже есть.

Добавлено через 3 минуты
Цитата Сообщение от mustimur Посмотреть сообщение
int *j,k=5,t;
j=&k;
*j*=2;
t=k;
Pascal
1
2
3
4
5
6
var j:integer^; k,t:integer;
begin
k:=5;
j:=&k;
j^:=j^*2;
t:=k;
Кстати, потрудись объяснить, как тебе удалось сочинить примеры, которые можно перевести с c++ на паскаль средствами даже не компилятора, а всего лишь автозамены?
0
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,558
21.03.2014, 14:04
Pascal
1
j:=&k;
Уверен, что так?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 14:26
Перепутал символы.
j:=@k;
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 14:59
Так интересно, а первый? и как это автоматически просто транслировать?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 15:04
Цитата Сообщение от mustimur Посмотреть сообщение
Так интересно, а первый? и как это автоматически просто транслировать?
Там тоже ничего сложного. Не транслируется дословно только цикл одновременно с несколькими счётчиками, не целым счётчиком, и цикл со счётчиком с не единичным шагом. Но и то можно выкрутиться, построив цикл на goto. А вот с делфей классы с published не транслируются совсем даже вручную.
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 15:14
taras atavin, может быть, но и тут сомневаюсь что аналог не подобрать (я как-то его мимо взора упустил в свое время и не использовал, сейчас нюансы и не вспомню)...
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 15:22
Нюанс заключается в том, что стартовое значение published-члена редактируется в инспекторе объектов. Это в приципе переводится только на билдер. С c++ же на паскаль сложно транслировать только перегруженные функции и операторы. Но именно сложно, а не нельзя, вместо перегруженных функций можно юзать переименование функций и процедур в зависимости от типов параметров, а вместо перегруженных операторов, включая операторы-члены, можно юзать функции и процедуры в сочетании с именованными вспомогательными переменными.
1
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 15:42
taras atavin, пока с трудом догоняю случай который нельзя бы было бы public-ом отделаться
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 16:04
Любой published. Абсолютно. Даже
Delphi
1
2
3
4
type a=class
published
i:integer;
end;
. На c++ нет инспектора объектов, а из него должно редактироваться стартовое значение этого свойства.
0
61 / 37 / 16
Регистрация: 15.03.2014
Сообщений: 315
21.03.2014, 16:17
taras atavin, тогда переводите на C++Builder, там есть __published.
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 16:22
Цитата Сообщение от taras atavin Посмотреть сообщение
Инспектора объектов, а из него должно редактироваться стартовое значение этого свойства
Дошло наконец. А надо ли это? конструкторы на что? или я чего-то не понимаю? Конструктор по-умолчанию вот тебе и начальные свойства.. Хотя я прекрасно понимаю какой ты контр пример приготовишь
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 16:26
Цитата Сообщение от mustimur Посмотреть сообщение
Конструктор по-умолчанию вот тебе и начальные свойства
Общие для всех экземпляров, а в инспекторе редактируются индивидуальные. Предложишь конструкторы с параметрами? Вот беда: параметры располагаются в коде, а published редактируется с интерфейса среды. Ближайший аналог - загрузка свойства из ресурсов, но и это не совсем то.
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
21.03.2014, 16:39
Согласен, подумал, что ты мне это скажешь. Хорошо есть принципиальная разница между тем что прописать свойства в инспекторе, или отредактировать сразу после создания в коде программы? (только не надо приводить аргумент что это быстрее, где-то приобретешь где-то потеряешь...)... По сути это тот же public, но только видимый в дополнительном инструменте Delphi, которого нет в большинстве IDe С++, чисто технически замени его на public и функционал насколько понимаю сохранится у класса. Надо лишь отредактировать его свойства сразу после инициализации класса и все. Остальное не важно, не думаю, что следует продолжать эту дискуссию: от темы она уже далека и мне кажется мы оба все равно останемся при своем мнении.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2014, 16:56
Цитата Сообщение от mustimur Посмотреть сообщение
(только не надо приводить аргумент что это быстрее, где-то приобретешь где-то потеряешь...).
А прич чём здесь городская баня? Тем более, что это как раз медленнее. Но я получаю определённый внеязыковый интерфейс редактирования и навигации по свойствам и объектам, не описываю ни каких операций, приводящих к установке правильного стартового значения, но само стартовое значение могут задать. Это не нужно. Эйси, но это - другой вопрос. Это предусмотрено и если вдруг использовано, то компилятор встрянет, если только не заставлять его перевести как раз на билдер.

Добавлено через 2 минуты
Цитата Сообщение от mustimur Посмотреть сообщение
По сути это тот же public, но только видимый в дополнительном инструменте Delphi, которого нет в большинстве IDe
Свойство может быть и не доступно с кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2014, 16:56
Помогаю со студенческими работами здесь

Ошибка при компиляции транслятора!!!
Доброго времени суток! Полдня промучилась и нигде не могу найти как исправить ошибку, которую выдает при компиляции Turbo Pascal 7.0 ...

Наследование от ApplicationException для нужд транслятора
Суть: Пишу что-то вроде своей IDE, грубо говоря пользователь вводит код скрипта, я его транслирую и интерпретирую с помощью шарпа, в...

Дописание вывода ошибок для транслятора
Есть программа транслятор с Паскаля на С++, код подкреплю ниже. Помогите организовать вывод ошибок при вводе не корректного кода паскаля...

Проектировние транслятора: на чем писать код
Здравствуйте...помоги разобраться и подобрать литературу для дальней реализации... язык для которого проектируется транслятор -C язык...

Написание транслятора с английского в код Морзе
Использование стандартной библиотеки С Написать программу, которая выполняет ввод текстовой информации из файла или стандартного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru