|
|
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
Вобщем нужно написать не большой компилятор для языка С++ на С++ :) компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис В принцепе я пока даже особо идей не имею как его писать.... Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы Буду благодарен за идеи или текст компилятора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 17:39:41 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
lacost wrote: > Вобщем нужно написать не большой компилятор для языка С++ на С++ :) > компилятор должен запускать в консольном режиме знать элементарные > функции....и проверять синтаксис > Вопрос - а зачем/для чего? ИМХО, по сложности это "ой". Есть готовые компиляторы с доступными исходниками - g++, mingw (фактически порт g++/gcc под винду) OpenWatcom и есть интерпретатор C++ - cint. Посмотрите, может, поможет чем-нибудь. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 17:43:01 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
lacostВобщем нужно написать не большой компилятор для языка С++ на С++ :) компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис В принцепе я пока даже особо идей не имею как его писать.... Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы Буду благодарен за идеи или текст компилятора Курсовик? А чего так рано, ещё ведь только начало учебного года. Или хвост? :) Помню был курсе на 3-м предмет "Формальные языки и проектирование компиляторов" - интересный, но слишком формальный :) На практике ограничились то ли лексическим, то ли синтаксическим анализатором для примитивной грамматики. Идеи и теорию можно поискать тут, например: http://ihtik.lib.ru/dreamhost_complit_22janv2007.html - всего-то с десяток книжек прочитать [пару раз] и всё станет понятно :) Исходники - ErV уже привёл примеры open source компиляторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:09:55 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
Вот еще интересная вещь: OpenC++ . Может пригодится для написания различного рода препроцессоров языка C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:17:36 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
Да именно курсак.....всем пля фигню типо игры "как стать миллионером" или базы успеваемости студентов А мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана....а по скольку идей ох как мало а работы ох как много лучше начать сразу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:28:42 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
ErV.....извени за тупой вопрос но где посмотреть эти исходники? ЗЫ: спс всем за полезные линки....как раз сеичас просматриваю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:38:51 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
Вообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю. Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:44:10 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
maytonВообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю. Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты. Примерно это я хочу сделать...написать свой компилятор это оооочень трудоёмко и у меня займёт 3-4 месяца, поэтому хочу взять текст какогнибудь компилятора скаже мтолько для бибилиотеки #iostream.h напиример разобраться в принцепе его написания....а потом уже самому внести нужные мне изменения, или взять текст хорошего компилятора с кучей пояснений на русском желательно и разбираться, разбираться, разбираться!!! Может кто то попмоч с этим teras , я скачал opencxx-2.8.tar и даже не понял как его юзать Оо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 18:51:23 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
требуется сразу введенную команду в бинарку или как ?. или требуется интерпретатор ??. аффтопитезь: 4 8 15 16 23 42 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 19:47:14 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
lacostПримерно это я хочу сделать...написать свой компилятор это оооочень трудоёмко и у меня займёт 3-4 месяца, поэтому хочу взять текст какогнибудь компилятора скаже мтолько для бибилиотеки #iostream.h напиример разобраться в принцепе его написания....а потом уже самому внести нужные мне изменения, или взять текст хорошего компилятора с кучей пояснений на русском желательно и разбираться, разбираться, разбираться!!! Может кто то попмоч с этим Я бы сказал, что даже с такими ограничениями вы не уложитесь в 3-4 месяца. Конечно, все еще зависит от качества. Если говорить о компиляторе промышленного качества (расчитанном на расширение и сопровождение), я бы взял 1-1,5 месяца на самый простой язык. Месяца три на C, и не менее шести на C++. Вообще мой совет - если хочется возиться с компилятором и C++, возьмите какой-нибудь маленький компилятор C (их куча - SmallC, tcc, и много-много других) поищите один с приличной поддержка структур, и реализуйте методы классов. Если есть желание - полиморфизм и виртуальные методы. Этого наверняка хватит за глаза. Если C++ не так уж и важен - сделайте подмножество C или какой-нибудь функциональный язык, типа lisp или scheme. Кое-что можно найти здесь: http://www.freeprogrammingresources.com/cppcomp.html И пара интерпретаторов C++: http://root.cern.ch/twiki/bin/view/ROOT/CINT http://home.mweb.co.za/sd/sdonovan/underc.html lacost teras , я скачал opencxx-2.8.tar и даже не понял как его юзать Оо Это парсер и анпарсер - позволяет прочитать входную программу на C++ во внутренее представление, обработать его, и, при необходимости преобразовать опять в C++. Подробности - в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 20:23:26 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
http://]http://www.biblus.ru/Default.aspx?book=5697l4u7 Куча объяснений на русском и текст компилятора смолл-си на 67 страницах. Два типа переменных char и int. Никаких классов, но есть препроцессор. Должно для курсовой хватить, с преподавателем нужно договориться сузить тему. Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 00:16:19 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
rm15http://]http://www.biblus.ru/Default.aspx?book=5697l4u7 Куча объяснений на русском и текст компилятора смолл-си на 67 страницах. Два типа переменных char и int. Никаких классов, но есть препроцессор. Должно для курсовой хватить, с преподавателем нужно договориться сузить тему. Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы? огромное тебе СПОСИБО!! Завтра буду смотреть. Я то напишу за несколько месяцев.....вот только откажусь от любого отдыха и буду жить С++...меня такая перспектива мало привлекает :) И к тому же это только часть курсовой....сама курсвая это тест по програмированию, который мало того что компилирует и проверяет правельность написанной пользователем программы (без компиляции сложно будет правильность проверить :D ) но ещё и указывает на явные ошибки+ оценивает рациональность выполнения...хотя по сравнению с компилятором это мелочи но всёже...а это ещё и оформить надо...в консольном режиме T_T ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 00:23:33 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
teras, сенк, уверен пока только просмторел..но уверен найдё много полезно, ещё рас спосибо ЗЫ: оффтоп: на этом форуме вобще свой пост редактировать можно уже второй рас два поста пишу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 00:25:44 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
ИМХО, не понято задание. Т.к. если остальным игры\тесты делать, а тут - компилятор (а линковщик вы тоже делать будете)? Мне кажется необходимо было бы написать что-то типа раскарашивальщика синтаксиса с подсчетом количества операторов - на основе этого высчитывался бы критерий оптимальности кода например. Также мне кажется лучше уточнить задание, а то если вместо простенького теста на С - принесете исходники gcc - не будет ли это хуже? Кстати, как мне видится, может я и ошибаюсь, проще всего написать клиентскую программу, которая бы вызывала компилятор(внешний,чужой) на компиляцию введенного кода, потом запускала полученный файл с параметрами указанными в задании, ловила бы вывод этой программы и сравнивала с ответом у себя - если совпадает - хорошо, если нет - тест не пройден. Плюс к этому свой синтаксический анализатор пирлепить, который бы ловил синтаксические ошибки например еще до компиляции. Писать компилятор и "О! СчастЛфчик" - это что-то круто у Вас преподы студентов дифференциируют :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 05:48:35 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
lacost пишет: > Вобщем нужно написать не большой компилятор для языка С++ на С++ :) > компилятор должен запускать в консольном режиме знать элементарные > функции....и проверять синтаксис т.е. интерпретатор С++ хочешь написать ? Если всего С++, то это очень сложно. С++ один из самых сложнейших существующих языков. А если тебе нужно только С, то кажется уже существует какой-то интерпретатор с открытым кодом, то ли совсем free, то ли GPL. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 08:34:27 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
lacost пишет: > Да именно курсак.....всем пля фигню типо игры "как стать миллионером" > или базы успеваемости студентов > > А мне тест по програмированию, в котором нужно отвечать на вопрос > решением задачи на С++ а тест компилирует (выполняет) эту программу и > соответсвенно для себя определяет на сколько правильно и рацоинально она > написана....а поскольку идей ох как мало а работы ох как много лучше > начать сразу.... Тут вроде бы не надо писать компилятор языка С++. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 08:38:20 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
teras пишет: > Я бы сказал, что даже с такими ограничениями вы не уложитесь в 3-4 > месяца. Конечно, все еще зависит от качества. Если говорить о > компиляторе промышленного качества (расчитанном на расширение и > сопровождение), я бы взял 1-1,5 месяца на самый простой язык. Месяца три > на C, и не менее шести на C++. Оптимист, аднако ! ЛЕТ на шесть, минимум. Я думаю в задании не сказано, что надо писать свой транслятор или интерпретатор С++. Надо просто хранить вопросы и саисок ответов на них с коэффициентом правильности. Суммировать баллы за ответы на вопросы с учетом этих коэффициентов. Это похоже и на "стать миллионером", и на задание для курсовика, цель которого обычно дать учащемуся в общих чертах ознакомиться с изучаемыми технологиями. Как кстати предмет-то называется, по которому курсовик ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 08:44:39 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
MasterZivОптимист, аднако ! ЛЕТ на шесть, минимум. Ну, все не так страшно :-) Возможно, несколько оптимистично, но за полгода более/менее реально создать инфраструктуру компилятора - поддержку системы типов, деревья синтаксиса, развертку шаблонов, лексический и синтаксический анализаторы, простенький генератор кода. Остальные пять с половиной лет уйдут на то, чтобы исправить основную часть ошибок и сделать относительно приличный оптимизатор. > А мне тест по програмированию, в котором нужно отвечать на вопрос > решением задачи на С++ а тест компилирует (выполняет) эту программу и > соответсвенно для себя определяет на сколько правильно и рацоинально она > написана....а поскольку идей ох как мало а работы ох как много лучше > начать сразу.... Слово "рационально" тут не нравится. Правильность синтаксиса можно проверить запуском компилятора. Правильность работы - сравнением ожидаемого и полученного результата. А вот рациональность определить не удастся, ИМХО. Во-первых, возможны различные толкования рациональности (скорость работы, использование ресурсов, безопасность, читаемость), а во-вторых - не существует способа определения того, насколько программа рациональна в каком-либо из этих смыслов. Человеки для этого используют субъективные факторы, и оценки могут диаметрально противоположными у разных людей. Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 11:14:18 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ думаю в задании не сказано, что надо писать свой транслятор или интерпретатор С++. Надо просто хранить вопросы и саисок ответов на них с коэффициентом правильности. Суммировать баллы за ответы на вопросы с учетом этих коэффициентов. Я тоже склюняюсь к этой мысли. Я учился в неслабом универе. И не помню случаев, чтобы студент мог в течение 1 семестра в рамках курсовой работы создать ПОЛНОЦЕННЫЙ компиллятор, для СЕРЬЕЗНОГО языка программирования. Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для гипотетической ЭВМ". У каждого был свой набор команд и, кроме того вариант задания выдавался не на одного, а на на "пару" студентов. Один студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения. Это задание вполне осуществимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 11:52:51 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
rm15 , я зашел по линку который ты дал там только кника которую нельзя скачать а только заказывать.... Ребят спосибо за кучу ценных советов, но подскажите где можно взять текст самого ПРОСТОГО компилятора С, с обьяснениями на русском, чтобы я мог уже от чегото отталкиваться и хоть понять принцип написания, а потом я думаю я и сам уже смогу внести нужные мне изменения teras Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему. Идея супер, но если бы я знал как практически это сделать.....если не сложно хотябы пример запуска готового компилятора программой, т.е. например читаем текст пользователя, запускаем компилятор...для меня просто представляеться сложным запустить что то не моё, не зная как оно работает. ЗЫ: задача звучала так "тест на знание С++, который компилирует текст пользователя и проверяет его на правильность и рациональность" я студент 2-ого курса, поэтому о С++ знаю достаточно мало и соотватсвенно мой копмилятор тоже не должен много знать %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 12:45:08 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
авторА мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана. может стоит повнимательней посмотреть на задание и если что переспросить у препода. По-моему тут нет про свой компилятор. Судя по описанию нужно сделать тесты результат которых компилировать сторонним компилятором и анализировать сторонним анализатором. Приложение по выдаче/проверке тестов по программированию нужно сделать а не свой компилятор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 13:59:00 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
teras пишет: > Ну, все не так страшно :-) Возможно, несколько оптимистично, но за > полгода более/менее реально создать инфраструктуру компилятора - Время засекать ? За полгода ты может быть стандарт толком только выучишь. Хотя чего там ... Главное что студенту в качестве курсовика вряд ли это задали. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 14:11:41 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
mayton пишет: > Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для > гипотетической ЭВМ". У каждого был свой набор команд и, кроме того > вариант задания выдавался не на одного, а на на "пару" студентов. Один > студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения. Да-да, и ассемблер должен быть на 5-10 комманд. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 14:13:28 |
|
||
|
Компилятор для С++
|
|||
|---|---|---|---|
|
#18+
1024 пишет: > сделать тесты результат которых компилировать сторонним компилятором и > анализировать сторонним анализатором. Приложение по выдаче/проверке > тестов по программированию нужно сделать а не свой компилятор. Да думаю его и компилировать не надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2007, 14:14:33 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=277&tid=2028176]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 372ms |

| 0 / 0 |
