Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Компилятор для С++ / 25 сообщений из 32, страница 1 из 2
15.09.2007, 17:39:41
    #34802749
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис

В принцепе я пока даже особо идей не имею как его писать....
Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать
Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы

Буду благодарен за идеи или текст компилятора
...
Рейтинг: 0 / 0
15.09.2007, 17:43:01
    #34802755
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
lacost wrote:

> Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
> компилятор должен запускать в консольном режиме знать элементарные
> функции....и проверять синтаксис
>
Вопрос - а зачем/для чего? ИМХО, по сложности это "ой".
Есть готовые компиляторы с доступными исходниками - g++, mingw
(фактически порт g++/gcc под винду) OpenWatcom и есть интерпретатор
C++ - cint. Посмотрите, может, поможет чем-нибудь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
15.09.2007, 18:09:55
    #34802791
Тынц.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
lacostВобщем нужно написать не большой компилятор для языка С++ на С++ :)
компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис

В принцепе я пока даже особо идей не имею как его писать....
Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать
Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы

Буду благодарен за идеи или текст компилятора
Курсовик? А чего так рано, ещё ведь только начало учебного года. Или хвост? :)
Помню был курсе на 3-м предмет "Формальные языки и проектирование компиляторов" - интересный, но слишком формальный :) На практике ограничились то ли лексическим, то ли синтаксическим анализатором для примитивной грамматики.

Идеи и теорию можно поискать тут, например: http://ihtik.lib.ru/dreamhost_complit_22janv2007.html - всего-то с десяток книжек прочитать [пару раз] и всё станет понятно :)
Исходники - ErV уже привёл примеры open source компиляторов.
...
Рейтинг: 0 / 0
15.09.2007, 18:17:36
    #34802798
teras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
Вот еще интересная вещь: OpenC++ . Может пригодится для написания различного рода препроцессоров языка C++.
...
Рейтинг: 0 / 0
15.09.2007, 18:28:42
    #34802805
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
Да именно курсак.....всем пля фигню типо игры "как стать миллионером" или базы успеваемости студентов

А мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана....а по скольку идей ох как мало а работы ох как много лучше начать сразу....
...
Рейтинг: 0 / 0
15.09.2007, 18:38:51
    #34802809
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
ErV.....извени за тупой вопрос но где посмотреть эти исходники?

ЗЫ: спс всем за полезные линки....как раз сеичас просматриваю
...
Рейтинг: 0 / 0
15.09.2007, 18:44:10
    #34802813
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
Вообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю.

Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты.
...
Рейтинг: 0 / 0
15.09.2007, 18:51:23
    #34802816
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
maytonВообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю.

Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты.

Примерно это я хочу сделать...написать свой компилятор это оооочень трудоёмко и у меня займёт 3-4 месяца, поэтому хочу взять текст какогнибудь компилятора скаже мтолько для бибилиотеки #iostream.h напиример разобраться в принцепе его написания....а потом уже самому внести нужные мне изменения, или взять текст хорошего компилятора с кучей пояснений на русском желательно и разбираться, разбираться, разбираться!!! Может кто то попмоч с этим

teras , я скачал opencxx-2.8.tar и даже не понял как его юзать Оо
...
Рейтинг: 0 / 0
15.09.2007, 19:47:14
    #34802841
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
требуется сразу введенную команду в бинарку или как ?.

или требуется интерпретатор ??.

аффтопитезь: 4 8 15 16 23 42
...
Рейтинг: 0 / 0
15.09.2007, 20:23:26
    #34802856
teras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
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++. Подробности - в документации.
...
Рейтинг: 0 / 0
16.09.2007, 00:16:19
    #34802957
rm15
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
http://]http://www.biblus.ru/Default.aspx?book=5697l4u7

Куча объяснений на русском и текст компилятора смолл-си на 67 страницах.
Два типа переменных char и int. Никаких классов, но есть препроцессор.
Должно для курсовой хватить, с преподавателем нужно договориться сузить тему.

Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы?
...
Рейтинг: 0 / 0
16.09.2007, 00:19:23
    #34802958
rm15
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
...
Рейтинг: 0 / 0
16.09.2007, 00:23:33
    #34802959
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
rm15http://]http://www.biblus.ru/Default.aspx?book=5697l4u7

Куча объяснений на русском и текст компилятора смолл-си на 67 страницах.
Два типа переменных char и int. Никаких классов, но есть препроцессор.
Должно для курсовой хватить, с преподавателем нужно договориться сузить тему.

Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы?

огромное тебе СПОСИБО!! Завтра буду смотреть. Я то напишу за несколько месяцев.....вот только откажусь от любого отдыха и буду жить С++...меня такая перспектива мало привлекает :) И к тому же это только часть курсовой....сама курсвая это тест по програмированию, который мало того что компилирует и проверяет правельность написанной пользователем программы (без компиляции сложно будет правильность проверить :D ) но ещё и указывает на явные ошибки+ оценивает рациональность выполнения...хотя по сравнению с компилятором это мелочи но всёже...а это ещё и оформить надо...в консольном режиме T_T
...
Рейтинг: 0 / 0
16.09.2007, 00:25:44
    #34802960
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
teras, сенк, уверен пока только просмторел..но уверен найдё много полезно, ещё рас спосибо

ЗЫ: оффтоп: на этом форуме вобще свой пост редактировать можно уже второй рас два поста пишу
...
Рейтинг: 0 / 0
16.09.2007, 05:48:35
    #34803009
скубент_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
ИМХО, не понято задание. Т.к. если остальным игры\тесты делать, а тут - компилятор (а линковщик вы тоже делать будете)?
Мне кажется необходимо было бы написать что-то типа раскарашивальщика синтаксиса с подсчетом количества операторов - на основе этого высчитывался бы критерий оптимальности кода например.
Также мне кажется лучше уточнить задание, а то если вместо простенького теста на С - принесете исходники gcc - не будет ли это хуже?

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

Писать компилятор и "О! СчастЛфчик" - это что-то круто у Вас преподы студентов дифференциируют :)
...
Рейтинг: 0 / 0
16.09.2007, 08:34:27
    #34803025
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
lacost пишет:
> Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
> компилятор должен запускать в консольном режиме знать элементарные
> функции....и проверять синтаксис

т.е. интерпретатор С++ хочешь написать ?
Если всего С++, то это очень сложно. С++ один из самых сложнейших
существующих языков. А если тебе нужно только С, то кажется уже существует
какой-то интерпретатор с открытым кодом, то ли совсем free, то ли GPL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.09.2007, 08:38:20
    #34803027
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
lacost пишет:
> Да именно курсак.....всем пля фигню типо игры "как стать миллионером"
> или базы успеваемости студентов
>
> А мне тест по програмированию, в котором нужно отвечать на вопрос
> решением задачи на С++ а тест компилирует (выполняет) эту программу и
> соответсвенно для себя определяет на сколько правильно и рацоинально она
> написана....а поскольку идей ох как мало а работы ох как много лучше
> начать сразу....

Тут вроде бы не надо писать компилятор языка С++.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.09.2007, 08:44:39
    #34803028
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
teras пишет:
> Я бы сказал, что даже с такими ограничениями вы не уложитесь в 3-4
> месяца. Конечно, все еще зависит от качества. Если говорить о
> компиляторе промышленного качества (расчитанном на расширение и
> сопровождение), я бы взял 1-1,5 месяца на самый простой язык. Месяца три
> на C, и не менее шести на C++.

Оптимист, аднако ! ЛЕТ на шесть, минимум.

Я думаю в задании не сказано, что надо писать свой транслятор или
интерпретатор С++. Надо просто хранить вопросы и саисок ответов
на них с коэффициентом правильности. Суммировать баллы за ответы
на вопросы с учетом этих коэффициентов. Это похоже и на
"стать миллионером", и на задание для курсовика, цель которого
обычно дать учащемуся в общих чертах ознакомиться с изучаемыми
технологиями. Как кстати предмет-то называется, по которому
курсовик ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.09.2007, 11:14:18
    #34803071
teras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
MasterZivОптимист, аднако ! ЛЕТ на шесть, минимум. Ну, все не так страшно :-) Возможно, несколько оптимистично, но за полгода более/менее реально создать инфраструктуру компилятора - поддержку системы типов, деревья синтаксиса, развертку шаблонов, лексический и синтаксический анализаторы, простенький генератор кода. Остальные пять с половиной лет уйдут на то, чтобы исправить основную часть ошибок и сделать относительно приличный оптимизатор.

> А мне тест по програмированию, в котором нужно отвечать на вопрос
> решением задачи на С++ а тест компилирует (выполняет) эту программу и
> соответсвенно для себя определяет на сколько правильно и рацоинально она
> написана....а поскольку идей ох как мало а работы ох как много лучше
> начать сразу....

Слово "рационально" тут не нравится. Правильность синтаксиса можно проверить запуском компилятора. Правильность работы - сравнением ожидаемого и полученного результата. А вот рациональность определить не удастся, ИМХО. Во-первых, возможны различные толкования рациональности (скорость работы, использование ресурсов, безопасность, читаемость), а во-вторых - не существует способа определения того, насколько программа рациональна в каком-либо из этих смыслов. Человеки для этого используют субъективные факторы, и оценки могут диаметрально противоположными у разных людей.

Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему.
...
Рейтинг: 0 / 0
16.09.2007, 11:52:51
    #34803091
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
MasterZivЯ думаю в задании не сказано, что надо писать свой транслятор или
интерпретатор С++. Надо просто хранить вопросы и саисок ответов
на них с коэффициентом правильности. Суммировать баллы за ответы
на вопросы с учетом этих коэффициентов.

Я тоже склюняюсь к этой мысли. Я учился в неслабом универе. И не помню случаев, чтобы студент мог в течение 1 семестра в рамках курсовой работы создать ПОЛНОЦЕННЫЙ компиллятор, для СЕРЬЕЗНОГО языка программирования.

Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для гипотетической ЭВМ". У каждого был свой набор команд и, кроме того вариант задания выдавался не на одного, а на на "пару" студентов. Один студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения. Это задание вполне осуществимо.
...
Рейтинг: 0 / 0
16.09.2007, 12:45:08
    #34803137
lacost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
rm15 , я зашел по линку который ты дал там только кника которую нельзя скачать а только заказывать....

Ребят спосибо за кучу ценных советов, но подскажите где можно взять текст самого ПРОСТОГО компилятора С, с обьяснениями на русском, чтобы я мог уже от чегото отталкиваться и хоть понять принцип написания, а потом я думаю я и сам уже смогу внести нужные мне изменения

teras

Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему.

Идея супер, но если бы я знал как практически это сделать.....если не сложно хотябы пример запуска готового компилятора программой, т.е. например читаем текст пользователя, запускаем компилятор...для меня просто представляеться сложным запустить что то не моё, не зная как оно работает.
ЗЫ: задача звучала так "тест на знание С++, который компилирует текст пользователя и проверяет его на правильность и рациональность" я студент 2-ого курса, поэтому о С++ знаю достаточно мало и соотватсвенно мой копмилятор тоже не должен много знать %)
...
Рейтинг: 0 / 0
16.09.2007, 13:59:00
    #34803209
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
авторА мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана.

может стоит повнимательней посмотреть на задание и если что переспросить у препода. По-моему тут нет про свой компилятор. Судя по описанию нужно сделать тесты результат которых компилировать сторонним компилятором и анализировать сторонним анализатором. Приложение по выдаче/проверке тестов по программированию нужно сделать а не свой компилятор.
...
Рейтинг: 0 / 0
16.09.2007, 14:11:41
    #34803219
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
teras пишет:

> Ну, все не так страшно :-) Возможно, несколько оптимистично, но за
> полгода более/менее реально создать инфраструктуру компилятора -

Время засекать ? За полгода ты может быть стандарт толком только выучишь.
Хотя чего там ... Главное что студенту в качестве курсовика вряд ли это
задали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.09.2007, 14:13:28
    #34803220
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
mayton пишет:

> Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для
> гипотетической ЭВМ". У каждого был свой набор команд и, кроме того
> вариант задания выдавался не на одного, а на на "пару" студентов. Один
> студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения.

Да-да, и ассемблер должен быть на 5-10 комманд.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.09.2007, 14:14:33
    #34803221
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компилятор для С++
1024 пишет:
> сделать тесты результат которых компилировать сторонним компилятором и
> анализировать сторонним анализатором. Приложение по выдаче/проверке
> тестов по программированию нужно сделать а не свой компилятор.

Да думаю его и компилировать не надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Компилятор для С++ / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]