Форум программистов, компьютерный форум CyberForum.ru

написать компилятор - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 21:59     написать компилятор #1
Написать транслятор для следующего фрагмента программы (на языке Паскаль или Си++). Недостающие объявления дописать. Вставить в текст комментарии. В результате данный текст должен быть переведён в программный код.
C++
1
2
3
4
5
6
7
8
bool password()
{ char s[80];
cout<<”Введите пароль:;
gets(s);
if  (!strcmp(s,”пароль”))
return false;
} return true;
}
очень нужно, но не знаю как..прошу помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 21:59     написать компилятор
Посмотрите здесь:

C++ компилятор и др
C++ Компилятор С
Компилятор C++ C++
Компилятор C++
C++ Компилятор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
07.05.2011, 22:01
  #2

Не по теме:

а исходники Windows вам не надо?)

error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 22:03  [ТС]     написать компилятор #3
Мне зачет сдать над- это лаба моя
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 22:50     написать компилятор #4
Цитата Сообщение от error_404 Посмотреть сообщение
Написать транслятор для следующего фрагмента программы (на языке Паскаль или Си++). Недостающие объявления дописать. Вставить в текст комментарии. В результате данный текст должен быть переведён в программный код.
C++
1
2
3
4
5
6
7
8
bool password()
{ char s[80];
cout<<”Введите пароль:;
gets(s);
if  (!strcmp(s,”пароль”))
return false;
} return true;
}
Первый вопрос: в КАКОЙ программный код нужно перевести. Без этого дальше двигаться невозможно.
И сразу предупреждаю: вряд ли в лабе требуется перевести в коды Intel и создать исполняемый файл.
Так что уточните постановку задачи.
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:04  [ТС]     написать компилятор #5
Нужно создать exe файл, компилятора, который будучи написан на C++ использует лексический анализатор и определяет допустимость введенного кода и если это возможно, выполняет его, используя функции с++ . То есть кусок компилятора на с_++ но можно(разрешили) код считывать с текстового файла, ноя не вижу здесь упрощения. В общем программа консольная, в которую вводится эта прога и она компилируется моей же программой и выполняет то, что выполнила бы прога на с, извините у нас просто препод странный-мы сами ничего в этом не понимаем и зачем дали такую лабу- точнее курсовую не знаем и никто из группы не может пока сделать

Добавлено через 1 минуту
А перевести эти функции- жопустмую комбинацию слов, в эквивалентные функции С++
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:08     написать компилятор #6
Цитата Сообщение от error_404 Посмотреть сообщение
Нужно создать exe файл, компилятора, который будучи написан на C++ использует лексический анализатор и определяет допустимость введенного кода и если это возможно, выполняет его, используя функции с++ . То есть кусок компилятора на с_++ но можно(разрешили) код считывать с текстового файла, ноя не вижу здесь упрощения

Добавлено через 1 минуту
А перевести эти функции- жопустмую комбинацию слов, в эквивалентные функции С++
Судя по фразе "если это возможно, выполняет его" - надо писать интерпретатор, а не компилятор. Это совсем другое дело, гораздо проще, но тоже геморно.
Чтобы написать анализатор, надо минимальную грамматику написать для данного фрагмента программы. Вы об этом что-нить знаете?
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:11  [ТС]     написать компилятор #7
да, как раз до этого мы грамматики на бумажке писали...

Добавлено через 46 секунд
и нужен именно анализхатор синтаксический и лексический- как только их делать???
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:12     написать компилятор #8
Цитата Сообщение от error_404 Посмотреть сообщение
да, как раз до этого мы грамматики на бумажке писали...

Добавлено через 46 секунд
и нужен именно анализхатор синтаксический и лексический- как только их делать???
Тогда и надо начать с того, что написать грамматику.
Тут всего несколько правил будет.
Наверное стартовый нетерминал будет ФУНКЦИЯ?
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:15  [ТС]     написать компилятор #9
функция??7 какая ?

Добавлено через 1 минуту
какя понял- эту прогу надо дописать- то есть main и библиотеки должны писаться
Недостающие объявления дописать. что тогда это значит?
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:19     написать компилятор #10
Цитата Сообщение от error_404 Посмотреть сообщение
функция??7 какая ?
Никакая. Это первое правило грамматики:
<функция> ::= <заголовок><тело>
Далее определяем, что такое заголовок, что такое тело. И так далее - до алфавита символов.
Лексический анализатор - это конечный автомат. Вы об этом что-нить знаете?
Можно построить его так, что на выходе будет поток лексем - он попадает на вход синтаксическому анализатору...
Подобные задания хорошо разбираются в книге Молчанова Системное программирование. Там все про компиляторы написано. Tiot в книге Свердлова Языки программирования и методы трансляции.
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:20  [ТС]     написать компилятор #11
про Свердлова знаю- а есть готовые примеры, которые работают, а то Свердловские с ошибками притом явными в коде
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:27     написать компилятор #12
Цитата Сообщение от error_404 Посмотреть сообщение
функция??7 какая ?

Добавлено через 1 минуту
какя понял- эту прогу надо дописать- то есть main и библиотеки должны писаться
Недостающие объявления дописать. что тогда это значит?
Прогу дописать - это совсем не то, что вы написали раньше.
Это просто написать функцию main(), в которой ЭТУ надо просто вызвать...
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:28  [ТС]     написать компилятор #13
а вообще можно подобный пример найти прям построения? а то в свердлове одна теория- а потом практика без основния и с ошибкамми- за неделю не разберусь
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:38     написать компилятор #14
Все же непонятно, что надо делать?
Самому дописать прогу?
Написать прогу, которая допишет прогу?
Проанализирует и выполнит?
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:39  [ТС]     написать компилятор #15
Проанализирует и выполнит? у свердлова в конце компилятор языка оберона на с++_ нам сказали вот так же сделать
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:43     написать компилятор #16
Цитата Сообщение от error_404 Посмотреть сообщение
Проанализирует и выполнит? у свердлова в конце компилятор языка оберона на с++_ нам сказали вот так же сделать
Либо вы не понимаете задание. Либо препод ставит слишком неконкретную задачу. Я так и не понял, что делать-то надо?
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:43  [ТС]     написать компилятор #17
препод бабушка 70 лет, которая просто сказала- напишите компилятор, который выполнит эту программу и все
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.05.2011, 23:53     написать компилятор #18
Понятно.
Тогда надо писать прогу, которая допишет и выполнит...
И все равно минимальный анализ надо делать. Ибо в main() эту функцию вызывать.
И придется взять Свердлова и как там написано - сделать свой конкретный вариант анализатора.
Примеров конкретно вашей задачи вы не найдете - нет их.
error_404
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 82
Записей в блоге: 1
07.05.2011, 23:54  [ТС]     написать компилятор #19
А есть хоть что-то похожее? или та же прога свердлова но на борланде-нам на студии не разрешили
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2011, 01:34     написать компилятор
Еще ссылки по теме:

C++ Компилятор c++
C++ Компилятор не дает написать main без int. Ошибка в книге, или в С так можно?
Написать простой компилятор языка C C++

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
08.05.2011, 01:34     написать компилятор #20
ТС, я бы на твоём месте сделал так: Довёл код до ума руками, чтоб компилился g++ и корректно, а потом то же самое сделал программно, то есть примерно такой алгоритм:

1) Если в коде нет main, то запихать
2) Если в коде есть служебные слова, как-то: bool, return, gets, то позаботиться чтобы прога их узнавала. Для этого дописать необходимые объявления
Всё это естественно, ПРОГРАММНО
И всё в таком духе.

По окончании всего этого дела у тебя полиучится исходник написанный корректно на С. После этого программно подавай его на вход компилятору

Зато потом придёшь сюда и скажешь: ребята, я изобрёл новый язык. И компилятор покажешь. И будет круто.
Yandex
Объявления
08.05.2011, 01:34     написать компилятор
Ответ Создать тему
Опции темы

Текущее время: 22:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru