Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем привет!
Недавно я понял, что мне очень интересна тема разработки транслятора/интерпретатора/другой подобной программы. Летом я "для души" писал интерпретатор JavaScript-подобного языка и добился некоторых успехов. Например, смог на нем протестировать некоторые алгоритмы из книги по алгоритмам, все отработало успешно. Помимо основ, этот интерперетатор поддерживал работу с массивами, конструкциями if, switch, for, while, do-while. Уже не так давно я помог двум студентам, им уже требовались трансляторы, один - из C++-подобного языка в язык ассемблера, другой - из подмножества Fortran в набор тетрад. Причем в первой программе я закодировал также генерацию дерева трансляции. Обе работы успешно сданы. Я ни в коей мере не хвастаюсь своими успехами, просто довожу до вашего сведения, какие наработки у меня в этой области есть. Но мне не хотелось бы на этом останавливаться, хотелось бы написать что-нибудь уже промышленного уровня, что бы пошло в массы, а возможно, могло бы и приносить доход с продаж копий. Одному мне в голову не приходит, транслятор или интерпретатор какого толка, с какого языка был бы востребован, к сожалению. Вот поэтому и обращаюсь ко всем, может, найдется среди вас кто-нибудь, кто сможет сформулировать хорошие идеи? Кроме того, мне было бы очень интересно поработать в паре (можно и больше человек в команде), никогда еще мне этого делать, по большому счету и к сожалению, не приходилось. Итак, тематика возможного проекта - написание транслятора, компилятора или интерпретатора промышленного уровня. Средство реализации - C+++, среда MSVC++ 2010 (без .NET и MFC). Жду ваших откликов! P.S. Готов рассмотреть также варианты, где другой участник проекта будет не так много копаться в коде, но больше будет в роли тестировщика, а также генератора идей. P.P.S. С++ Builder тоже могу рассмотреть как вариант. Может быть, если будет писаться что-то вроде IDE, это даже будет лучшим решением. P.P.P.S. Да даже могу рассмотреть и вариант с .NET как платформой для интерактивного приложения, только тогда задача написания .NET-специфичного кода встанет на Вас (так как у меня нет опыта с .NET совершенно)! |
Сообщ.
#2
,
|
|
|
Цитата Homez @ один - из C++-подобного языка в язык ассемблера Может всё таки C-подобного языка? С++ на много сложнее C. |
Сообщ.
#3
,
|
|
|
Цитата Homez @ IMHO, утопическая идея.хотелось бы написать что-нибудь уже промышленного уровня, что бы пошло в массы, а возможно, могло бы и приносить доход с продаж копий. В чём будет фича нового скрипта? Такая фича, которой нет в других скриптовых языках, которые вошли в массы лет 15 назад и до сих пор развиваются (пример тому Python). Без этой уникальной особенности проект обречён на провал... К тому же, судя по всему, скрипт будет работать только под Win. Пользователи Win, в основной массе своей знать не знают что такое скрипты. |
Сообщ.
#4
,
|
|
|
2 DEADHUNT: Ну это собственно уже детали... Код транслирумеой программы лолжын был быть написан в теле функции - члена класса. Хотя ни вызова функций, ни тем более работы с объектами там уже не предполагалось. И к этой теме это уже мало отношения имеет.
2 evlan: Ну а с чего Вы решили, что речь идет именно о скриптовом языке? Если это будет транслятор или компилятор, то входным языком может быть что угодно, равно как и результат может быть сформирован в каком угодно виде. Наприимер, это может оказаться транслятор какого-нибудь популярного языка в язык ассемблера какого-нибудь промышленного микроконтроллера. Тем более Ваше последнее замечание не имеет отношения к теме. Я не считаю, что идея написать что-то новое является утопической. Новые языки продолжают и продолжают появляться, да вопрос так и не ставился, чтобы обязательно разработать какой-то новый язык, возможна и новая реализация чего-то уже знакомого. Пока еще направление проекта не выбрано, рано ведь судить о том, провальный он или нет. 2 trainer: Ага, благодарю Вас за то, что перенесли тему в более подходящий раздел. Если бы я знал о его существовании, я бы сразу разместил тему здесь. 2 All: Продолжаю ждать Ваших всевозможных идей и предложений. |
Сообщ.
#5
,
|
|
|
Прежде всего нужно не слушать всяких скептегоф, которые найдут стопицот причин, почему заявленный проект провалится. Но грусть в том, что не нужно ничего обсуждать и искать единомышленников на форуме. На форумах сидят одни неудачнеге, которые в основном могут родить пост типа "не взлетит". Нужно просто реализовывать и молча выпускать первую версию. Писать на форуме анонс, из критических отзывов брать ценное, а дальше класть на всех болт, ни в коем случае не отвечать критикующим - с ними разговор бесконечен и бесплоден.
|
Сообщ.
#6
,
|
|
|
Я уже несколько лет работаю над интерпретатором с си-подобного языка, использующийся в составе программы, которая красуется в моей подписи. Проект многообещающий и перспективный, на мой взгляд.
|
Сообщ.
#7
,
|
|
|
Программу скачал, жаль, что документация недоступна, не понял в целом, какие задачи выполняет программа. А где интерпретатор используется? Для каких-то скриптов автоматизации, которые недоступны пользователю для просмотра и редактирования?
Добавлено Покопался в файлах программы, нашел-таки эти скрипты. Странный у Вас формат для циклов for. После to, ИМХО, по логике должно стоять верхнее значение переменной, которая работает как счетчик, а не условие цикла. И инкремент почему-то записывается в самом конце цикла. Так, несомненно, проще несколько обрабатывать циклы, например, в моем трансляторе (а может и в интерпретаторе, уже точно не помню) чтобы корректно все работало, нужно было в промежуточную программу добавить несколько безусловных переходов (чтобы наращение счетчика происходило строго раньше проверки условия и чтобы перед первым проходом счетчик не наращивался). Там у меня форма записи цикла for была аналогична той, что в C или Java. По-моему, запись инкрементирования после тела цикла понижает читаемость программы. Ну хотя, эти ж скрипты не предназначены для конечного пользователя, чтобы тот их мог просматривать и править по необходимости, или я ошибаюсь? А кстати, break и continue вы реализовали? В моем интерпретаторе эти инструкции были, причем в форме, характерной для Java, с метками, то есть из внутреннего цикла можно было перейти на новый проход даже и внешнего цикла по continue или выйти уже за пределы внешнего цикла по break с его меткой . Добавлено Ну в общем, использование интерпретатора как компонента приложения для автоматизации некоторых действий - тоже вариант. Добавлено Да, AZote, еще странность в этих Ваших скриптах - то, что где-то перед именем переменной надо ставить знак доллара, а где-то не надо. Чем это обусловлено? |
Сообщ.
#8
,
|
|
|
Цитата Homez @ Для каких-то скриптов автоматизации, которые недоступны пользователю для просмотра и редактирования? Как раз наоборот. Программа в целом представляет собой сборщик и контейнер различного рода информации. А интерпретатор используется для её форматированного вывода в виде конечного текста. Разумеется, не каждый пользователь сможет создавать так называемые скриптовые шаблоны для вывода информации, а только продвинутый и имеющий хотя бы начальные навыки в программировании. Но здесь нет проблемы - всегда можно заказать шаблон у разработчика! Цитата Homez @ Странный у Вас формат для циклов for. После to, ИМХО, по логике должно стоять верхнее значение переменной, которая работает как счетчик, а не условие цикла. Вы правильно проследили причинно-следственную связь введения такой конструкции цикла. Она проще в реализации. Но тут есть еще один фактор - мои давние увлечения basic'ом. Что касается выражения после to, то "верхнее значение" превратило бы цикл в неудобнуюю и узкоприменимую конструкцию. Цитата Homez @ А кстати, break и continue вы реализовали? К сожалению, столкнулся с трудностями при реализации этих ключевых слов. Цитата Homez @ Да, AZote, еще странность в этих Ваших скриптах - то, что где-то перед именем переменной надо ставить знак доллара, а где-то не надо. Чем это обусловлено? Знак доллара $ - это оператор явного приведения в cтроковый тип. Есть еще два подобных оператора: % - приведение к целому, ~ - приведение к реальному. str = "2011 year!"; year = % str; // year = 2011 В общем же, язык обладает динамической типизацией. |
Сообщ.
#9
,
|
|
|
Ваши ответы понял. Что касается break и continue, если интересно, то могу дать уже в личном общении советы, как сделать их поддержку, в том числе и с метками, как в Java. Все-таки иногда эти операторы бывают очень полезны.
|
Сообщ.
#10
,
|
|
|
Цитата Bulkoed @ IMHO - по моему скромному мнениюни в коем случае не отвечать критикующим - с ними разговор бесконечен и бесплоден. Не обращать внимания на критику в принципе, верный способ профукать что-нибудь важное. Бывает и полезная, конструктивная критика. Цитата Homez @ Предположил исходя из того, что "для себя" был написан именно скрипт.Ну а с чего Вы решили, что речь идет именно о скриптовом языке? Я так понимаю со своей колокольни - Вам хочется написать что-то промышленное и масштабное, причём нечто привлекающее внимание масс, к тому же платное. Для этого есть необходимые условия: своевременность востребованность оригинальность профессиональная команда Лично мне интересно, вы работаете по профилю? |
Сообщ.
#11
,
|
|
|
Что значит - работаю по профилю?
Добавлено Насчет того, что игнорировать критику или хотя бы не отвечать на нее - это неразумный подход, я с Вами согласен. Добавлено Если Вы имеете ввиду, профессиональный ли я программист, могу с уверенностью сказать, что да, хотя еще не разу не приходилось работать непосредственно в профессиональной команде (лишь только опосредовано). Весной я работал над одним проектом (там еще и два других человека работали над своими модулями), вот-вот должны начаться продажи этого продукта, причем цена за копию немаленькая. А уже не так давно я завершил работу над одним проектом (и, скорее всего, буду его сопровождать), результат которого будет продаваться как приложение для iPhone. Добавлено Насчет же моего образования, да, образование у меня не программистское, хотя компьютерным технологиям внимания в вузе было уделено много. Но я не считаю, что профильное образование - это обязательный ключ к успеху, многого можно добиться и самообразованием, что и есть в моем случае. |
Сообщ.
#12
,
|
|
|
Цитата Homez @ Предположил что у Вас есть постоянное место работы в качестве программиста. то значит - работаю по профилю? |
Сообщ.
#13
,
|
|
|
ну сейчас я работаю как фрилансер, но сути это не меняет.
|
Сообщ.
#14
,
|
|
|
Homez, очень хотелось бы поучаствовать в проекте. Но к сожалению у меня нет таких знаний по С++. Я только ООП начинаю учить)
Добавлено Но идеями помочь могу |
Сообщ.
#15
,
|
|
|
Приятно это слышать, Snej. Но опыт какой-то в программировании вообще имеется?
|