На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> Проект транслятора или интерпретатора на C++, Ищу единомышленника для совместной работы
    Всем привет!

    Недавно я понял, что мне очень интересна тема разработки транслятора/интерпретатора/другой подобной программы. Летом я "для души" писал интерпретатор 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 совершенно)!
    Сообщение отредактировано: Homez -
      Цитата Homez @
      один - из C++-подобного языка в язык ассемблера

      Может всё таки C-подобного языка? :D С++ на много сложнее C.
        Цитата Homez @
        хотелось бы написать что-нибудь уже промышленного уровня, что бы пошло в массы, а возможно, могло бы и приносить доход с продаж копий.
        IMHO, утопическая идея.

        В чём будет фича нового скрипта? Такая фича, которой нет в других скриптовых языках, которые вошли в массы лет 15 назад и до сих пор развиваются (пример тому Python).
        Без этой уникальной особенности проект обречён на провал...

        К тому же, судя по всему, скрипт будет работать только под Win. Пользователи Win, в основной массе своей знать не знают что такое скрипты.
        Сообщение отредактировано: evlan -
        Вопросов больше чем ответов...
          2 DEADHUNT: Ну это собственно уже детали... Код транслирумеой программы лолжын был быть написан в теле функции - члена класса. Хотя ни вызова функций, ни тем более работы с объектами там уже не предполагалось. И к этой теме это уже мало отношения имеет.

          2 evlan: Ну а с чего Вы решили, что речь идет именно о скриптовом языке? Если это будет транслятор или компилятор, то входным языком может быть что угодно, равно как и результат может быть сформирован в каком угодно виде. Наприимер, это может оказаться транслятор какого-нибудь популярного языка в язык ассемблера какого-нибудь промышленного микроконтроллера. Тем более Ваше последнее замечание не имеет отношения к теме.

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

          2 trainer: Ага, благодарю Вас за то, что перенесли тему в более подходящий раздел. Если бы я знал о его существовании, я бы сразу разместил тему здесь.

          2 All: Продолжаю ждать Ваших всевозможных идей и предложений.
            Прежде всего нужно не слушать всяких скептегоф, которые найдут стопицот причин, почему заявленный проект провалится. Но грусть в том, что не нужно ничего обсуждать и искать единомышленников на форуме. На форумах сидят одни неудачнеге, которые в основном могут родить пост типа "не взлетит". Нужно просто реализовывать и молча выпускать первую версию. Писать на форуме анонс, из критических отзывов брать ценное, а дальше класть на всех болт, ни в коем случае не отвечать критикующим - с ними разговор бесконечен и бесплоден.
              Я уже несколько лет работаю над интерпретатором с си-подобного языка, использующийся в составе программы, которая красуется в моей подписи. Проект многообещающий и перспективный, на мой взгляд.
              Моральная уверенность всегда является признаком культурной неполноценности.
              Чем менее цивилизован человек, тем больше он уверен в том, что знает, что правильно, а что неправильно.
                Программу скачал, жаль, что документация недоступна, не понял в целом, какие задачи выполняет программа. А где интерпретатор используется? Для каких-то скриптов автоматизации, которые недоступны пользователю для просмотра и редактирования?

                Добавлено
                Покопался в файлах программы, нашел-таки эти скрипты. Странный у Вас формат для циклов for. После to, ИМХО, по логике должно стоять верхнее значение переменной, которая работает как счетчик, а не условие цикла. И инкремент почему-то записывается в самом конце цикла. Так, несомненно, проще несколько обрабатывать циклы, например, в моем трансляторе (а может и в интерпретаторе, уже точно не помню) чтобы корректно все работало, нужно было в промежуточную программу добавить несколько безусловных переходов (чтобы наращение счетчика происходило строго раньше проверки условия и чтобы перед первым проходом счетчик не наращивался). Там у меня форма записи цикла for была аналогична той, что в C или Java. По-моему, запись инкрементирования после тела цикла понижает читаемость программы. Ну хотя, эти ж скрипты не предназначены для конечного пользователя, чтобы тот их мог просматривать и править по необходимости, или я ошибаюсь?

                А кстати, break и continue вы реализовали? В моем интерпретаторе эти инструкции были, причем в форме, характерной для Java, с метками, то есть из внутреннего цикла можно было перейти на новый проход даже и внешнего цикла по continue или выйти уже за пределы внешнего цикла по break с его меткой .

                Добавлено
                Ну в общем, использование интерпретатора как компонента приложения для автоматизации некоторых действий - тоже вариант.

                Добавлено
                Да, AZote, еще странность в этих Ваших скриптах - то, что где-то перед именем переменной надо ставить знак доллара, а где-то не надо. Чем это обусловлено?
                  Цитата Homez @
                  Для каких-то скриптов автоматизации, которые недоступны пользователю для просмотра и редактирования?

                  Как раз наоборот. Программа в целом представляет собой сборщик и контейнер различного рода информации. А интерпретатор используется для её форматированного вывода в виде конечного текста. Разумеется, не каждый пользователь сможет создавать так называемые скриптовые шаблоны для вывода информации, а только продвинутый и имеющий хотя бы начальные навыки в программировании. Но здесь нет проблемы - всегда можно заказать шаблон у разработчика! :D

                  Цитата Homez @
                  Странный у Вас формат для циклов for. После to, ИМХО, по логике должно стоять верхнее значение переменной, которая работает как счетчик, а не условие цикла.

                  Вы правильно проследили причинно-следственную связь введения такой конструкции цикла. Она проще в реализации. Но тут есть еще один фактор - мои давние увлечения basic'ом. :rolleyes: Что касается выражения после to, то "верхнее значение" превратило бы цикл в неудобнуюю и узкоприменимую конструкцию.

                  Цитата Homez @
                  А кстати, break и continue вы реализовали?

                  К сожалению, столкнулся с трудностями при реализации этих ключевых слов.

                  Цитата Homez @
                  Да, AZote, еще странность в этих Ваших скриптах - то, что где-то перед именем переменной надо ставить знак доллара, а где-то не надо. Чем это обусловлено?

                  Знак доллара $ - это оператор явного приведения в cтроковый тип.
                  Есть еще два подобных оператора: % - приведение к целому, ~ - приведение к реальному.

                  ExpandedWrap disabled
                    str = "2011 year!";
                     
                    year = % str; // year = 2011


                  В общем же, язык обладает динамической типизацией.
                  Моральная уверенность всегда является признаком культурной неполноценности.
                  Чем менее цивилизован человек, тем больше он уверен в том, что знает, что правильно, а что неправильно.
                    Ваши ответы понял. Что касается break и continue, если интересно, то могу дать уже в личном общении советы, как сделать их поддержку, в том числе и с метками, как в Java. Все-таки иногда эти операторы бывают очень полезны.
                      Цитата Bulkoed @
                      ни в коем случае не отвечать критикующим - с ними разговор бесконечен и бесплоден.
                      IMHO - по моему скромному мнению
                      Не обращать внимания на критику в принципе, верный способ профукать что-нибудь важное. Бывает и полезная, конструктивная критика.


                      Цитата Homez @
                      Ну а с чего Вы решили, что речь идет именно о скриптовом языке?
                      Предположил исходя из того, что "для себя" был написан именно скрипт.
                      Я так понимаю со своей колокольни - Вам хочется написать что-то промышленное и масштабное, причём нечто привлекающее внимание масс, к тому же платное. Для этого есть необходимые условия:
                      своевременность
                      востребованность
                      оригинальность
                      профессиональная команда

                      Лично мне интересно, вы работаете по профилю?
                      Сообщение отредактировано: evlan -
                      Вопросов больше чем ответов...
                        Что значит - работаю по профилю?

                        Добавлено
                        Насчет того, что игнорировать критику или хотя бы не отвечать на нее - это неразумный подход, я с Вами согласен.

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

                        Добавлено
                        Насчет же моего образования, да, образование у меня не программистское, хотя компьютерным технологиям внимания в вузе было уделено много. Но я не считаю, что профильное образование - это обязательный ключ к успеху, многого можно добиться и самообразованием, что и есть в моем случае.
                          Цитата Homez @
                          то значит - работаю по профилю?
                          Предположил что у Вас есть постоянное место работы в качестве программиста.
                          Вопросов больше чем ответов...
                            ну сейчас я работаю как фрилансер, но сути это не меняет.
                              Homez, очень хотелось бы поучаствовать в проекте. Но к сожалению у меня нет таких знаний по С++. Я только ООП начинаю учить)

                              Добавлено
                              Но идеями помочь могу :)
                                Приятно это слышать, Snej. Но опыт какой-то в программировании вообще имеется?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1811 ]   [ 14 queries used ]   [ Generated: 15.12.19, 23:04 GMT ]