Войти
ФлеймФорумПрограммирование

Сделал интерпретатор С++11 подобного языка. (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2
#15
1:28, 25 мар. 2016

gammaker
> И как ты себе это представляешь?
Вот так:
В тред врывается техдир из гугла и публично зовёт меня на работу за тоны выгоды кодить новый ЯП в какой-то спецально для меня созданый стартап или спец.отдел прям в гугле.
На следующий же день под моим чутким руководством новый ЯП разработан, а так же ещё и IDE/Отладчик/Документация/ОС/ЦПУ/Перефирия в количестве триллиард штук. После этого я рассылаю новость о релизе первого комерческого продукта на базе этой технологии каждому из списка.

</шутка>

gammaker
> Кому нужен ещё один тормозной интерпретатор?
Логика примерно такая:
IRL есть проблемма, но нереально сложная, но теоретически если решить, то сверх-выгодная.
Предположим, что нам повезло и чтобы её решить нужно всего лишь сделать прогу+железо.
Предположим, что прога+железо должно быть нерально крутыми чтобы справиться с задачей.
Итак:
  Нужна нерально крутая прога => Нужены сотни новых ЯП => Нужены сотни разработчиков ЯП.
  Где искать разработчиков новых ЯП?

Итак, теперь у нас есть бесконечно малый, но реальный шанс, что кто-то будет искать в интернете разработчиков ЯП.

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

gammaker
>Вот если бы ты компилятор сделал, тогда другое дело.
Для быстрого написания тормозных интепретаторов я сделал соотвествующий инструментарий:
1) Свою систему RTTI + свои умные указатели для неё + свою систему сериализации для всего этого. дважды.
2) Генератор лексеров для этой системы. дважды.

и теперь могу их делать сверх-быстро, а вот для написания компиляторов у меня такого инструментария пока нет, а чужой не нужен, ибо NIH!

Для быстрого написания компилятор ещё нужно уметь быстро делать:
  наборы инструкций/регистров/способы адресации.
  виртуальные машины для них.
  трансляторы из промежуточного(asm`подобного) представления в байткод/машинный код.
  трансляторы из AST в промежуточное представление. // возможно это надо как-то обобщённо делать.
  оптимизаторы промежуточного представления/байткода/AST. // ок, на этот пункт можна забить в первом приблежении.

Более того, нужно существенно улучшить язык для описания лексеров, т.к он не идеален.

Я запарился расставлять в описании почти каждой лексемы спецальный лексер пожирающие разделитили(пробелы+коментарии).
А ещё мне иногда охота использовать С++ препроцессор для описания лексем(я описываю их на своём ЯП, а затем транслирую в С++) или написать свой, т.к описание лексем разбирающих все виды операторов из С++ я сгенерировал на javascript`е.
А ещё интепретатор компилируюется больше минуты на моём ноуте, что нереально выбешивает, а иногда процесс компиляции отжирает всё ОЗУ ноута и вообще длиться до 10 минут >_<.
А ещё я хочу написать IDE+отладчик+свой ЯП(и встроить в него свой ЯП для описания лексем) и дальше писать всё на нём :).
И я знаю почему С++ компиляторы такие тормозные. Мне из-за этого говна пришлось продублировать почти всё семейство типов используемых в AST вот в этом проекте.
Я считаю что это самая большая ошибка и самое слабое место в С++.

gammaker
> Так можно было бы ради интереса глянуть исходнички
А что мне с этого будет? :)

> но и не настолько это нужно, чтобы следить за выходом твоего коммерческого продукта, а потом его ещё покупать.
могу ещё предложить не ждать и купить кота в мешке, будешь первым :) 


#16
11:28, 25 мар. 2016

Adler
> Для быстрого написания компилятор ещё нужно уметь быстро делать:
  Можно просто взять LLVM.

Adler
> А ещё интепретатор компилируюется больше минуты на моём ноуте, что нереально
> выбешивает, а иногда процесс компиляции отжирает всё ОЗУ ноута
Сколько строк кода а твоём интерпретаторе? По идее, должно быть намного меньше, чем в моём движке. Что за проц и сколько ОЗУ? Чем компилируешь?
У меня движок на C++ 50000 строк кода (30000 с небольшим, если не считать пробелов) в 2015 студии полностью компилируется за 16 секунд. Ноут с Core i7 4700MQ (2.4 ГГц, но турбобустится до 3.2 ГГц). Оперативки 12 ГБ, но судя по диспетчеру задач, она практически вообще не жрётся.

Adler
> А что мне с этого будет? :)
Покритикуют код, может что-то полезное подскажут. А если в эту тему придёт твой потенциальный работодатель, он заодно и твой код оценить сможет. А то кроме списка фич, который ты озвучил, ничего не видно, и потенциальный работодатель может подумать, что ты всё просто выдумал.
А если не выложишь, то тем более ничего не будет, пока ты не сделаешь что-то реально полезное - быстрый сверхкрутой компилируемый язык круче D. Потому что D всем круче C++, у него есть открытые исходники, и даже при этом на нём мало кто пишет из-за недоработанных IDE и отсутствия поддержки Android.

#17
20:01, 25 мар. 2016

gammaker
> Можно просто взять LLVM.
Я так и сделал, взять LLVM, переместил его в папку NIH, а затем удалил её.

> Сколько строк кода а твоём интерпретаторе?
Короткий ответ: где-то 29kloc 

точнее ответ зависит от способа оценки и с уверенностью можно указать только интервал: от 5kloc до 181kloc
+ Подробный ответ:

gammaker
> Что за проц и сколько ОЗУ?

+ вообще

> Чем компилируешь?
MSVS2010

gammaker
> Покритикуют код, может что-то полезное подскажут.
У меня есть куча проектов исходный код которых я выложил в открытый доступ.

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

Нужна ли мне критика кода?

+ А стоп, стоп, я понял как ответить. Короче все что я раньше написал засуну под этот спойлер, offtop же, а ниже вне спойлера напишу норм ответ

Вот гляди, я же сразу сказал, что написал сабж, для того чтобы развлечься.
Написание кода - это развлечение. Результат развлечения - это сам интепретатор + его исходный код + код программ на новом ЯП + результаты работы эти программ.
Вот ты когда в компютерные игры играешь, или ютуб смотришь у тебя результат развлечения какой? Неужели ты хочешь услышать критику результата своих развлечений? Не исключено. Тогда fail. Но если нет, то тогда у меня такая же ситуация. Зачем мне просто так делать какие-то лишние движения чтобы показывать результат развлечений?
Прямой выгоды мне от таких действий вроде нет, или ты можешь что-то предложить? Тут ещё можно рассмотреть косвенную выгоду.

gammaker
>может что-то полезное подскажут
А может и нет.

Предлагашь выложить исходники с надеждой на возможные, но не гарантированые критические коментарии с случайным качеством?
А сколько планируешь потратить времени на исследование и написание критики? А гарантии объёма и качественности будут? Серьёзно?

Но я наверно даже если будут гарантии объёма, сроков, качества и гарантированой денежной компенсации(через посредника в случае отказа или невозможности написания критики удовлетворающей согласованым требования) всё равно бы отказался выклыдвать исходный код интерпретатора.

Вот смотри, сразу выложив исходники я:
  теряю возможност набивать им цену рассказывая про то какие они крутые. // точнее существенно усложняю это. серьёзно.
  у ушлого народа появляеться возможность выдавать этот код за свой. // это не сильно им поможет. мелочь, но не приятно.
  усложняю себе задачу по доказыванию того, что выложеный код мой. // мелочь, но не приятно.
  убиваю интригу. // серьёзно
  увеличиваю вероятность создать себе конкурентов, на базе моих наработок. // довольно неодназначный пункт.  это хорошо/плохо? надо думать.
  теряю возможност их продать. // если любой может их получить, то мне остаёться только зарабатывать занимаясь их поддержкой/улучшением. Существенная потеря.

Чем это точно можно попытаться компенсировать:
  Тонны выгоды.
  Гарантия должности в проекте с хорошей конечной целью и хороши окладом и % прибыли.

Я считаю, что нужно сразу просить за исходный код интерпретатора что-то гарантированое и соизмеримое с тоннами выгоды.
А за гарантированые(тем же самым способом) коментарии(объёмные и качественные) я согласен показать только исполняемый файл и пример кода на новом ЯП.

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

Если он отфильтрует вообще всех, то тогда я может быть изменю свой взгляд, насчёт того - зачем тогда тут на форуме вообще что-то подобное писать. проверка.

gammaker
> А то кроме списка фич, который ты озвучил, ничего не видно, и потенциальный
> работодатель может подумать, что ты всё просто выдумал.
Если при этом он вообще никак не отреагирует и не покажет себя, то очевидно несудьба.

Точнее я начну считать, что искомый мной активный работодатель несуществует на данный момент. => мир ещё не такой совершенный в этом моменте => неисключено когда-то он станет таким. Получить отклик не сразу лучше, чем никогда.
Можно же устроить конкурс(если я посчитаю, что могу в нём поучаствовать не раскрыв исходники, то у меня будет неплохой шанс победить) по разработки интерпретоторов и тем самым решить пробемму. Да есть тысячи способов как связавшись со мной можно проверить выдумал/не выдумал с минимальными затратами в случая неудачи для обоих сторон.

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

деньги => исходники. тонны выгоды => исходники. гарантированная критика(на тех самых условия) => испольняемый файл + примеры программ на этом новом ЯП.

gammaker
> пока ты не сделаешь что-то реально полезное - быстрый сверхкрутой компилируемый
> язык круче D
Очень маловероятно. Это же ещё надо IDE,Отладчик,Доки делать. Я конечно с радостью, но кто его знает хватит ли у меня на это ресурсов. А потом это всё ещё пиарить.

#18
23:57, 25 мар. 2016

Adler
> Я так и сделал, взять LLVM, переместил его в папку NIH, а затем удалил её.
Тогда также можешь поступить со своим ноутом.

Adler
> Тоесть основной исходный код который реально влияет на особенности
> интерпретатора это: 4069loc + 852loc
Ну ладно, понятно.

Adler
> Предлагашь выложить исходники с надеждой на возможные, но не гарантированые
> критические коментарии с случайным качеством?
Ну ладно, не хочешь, не надо.

Adler
> Я отвел под эту тему довольно скромный бюджет(по времени) и он ещё не исчерпан.
Что-то незаметно. Слишком длинные у тебя посты.

#19
0:44, 26 мар. 2016

:-|


gammaker
> Что-то незаметно. Слишком длинные у тебя посты.
Хочу сразу всё отведённое время потратить и не растягивать на неделю, а потом продолжить кодить проекты.
Но в теме как назло по делу никто часто не пишет, приходиться либо писать длинные сообщения на каждый короткий коментарий и отвечать на вопросы которых ещё не задали, либо читать всякие форму из интенета на которых народ выкладывает свои интерпретатор/помпиляторы.
например сейчас вот это читаю: http://forum.sources.ru/index.php?showtopic=345126&view=showall

кодить и мониторить форум одновременно не могу, предпочитаю кодить в offline.

#20
14:18, 26 мар. 2016

Осознал, что на форум некоторый народ заходит раз в неделю.
Решил растяну тему на пару недель и не писать длинных сообщений.

Или можете наобещать гору коментариев, тогда со скидкой 70% :)

+ Показать

#21
14:58, 26 мар. 2016

ТС знает толк в монетизации я смотрю

#22
22:24, 26 мар. 2016

Adler

Интересует сканер, разбор сверху вниз?

Страницы: 1 2
ФлеймФорумПрограммирование

Тема в архиве.