Defragmented
А если не писать транслятора а сразу из c++ исполнять?
зависит от того сколько ты готов взять из чужих библиотек
Defragmented
А если не писать транслятора а сразу из c++ исполнять?
можешь успеть еще сделать строки и математику больших чисел. и начать мучаться с выделением памяти. не дойдешь до коллекций и словарей.
Гриб
Пульсации
Это понятно во время работы. А некий скачок во время подключения может быть? На входе
Cage
Есть вопрос. Насколько сложно написать на C++ компилятор в некий ассемблер (любой) из например питона (у меня щас в моём тестовом языке похожий синтаксис) из синтаксического дерева?
Например питон язык динамический, если нужно его полноценная компиляция то возникают сложности, т.к просто невозможно скомпилировать всё, т.к всего нет на этапе компиляции Компилировать языки статические типа С совсем несложно, компилятор С пишут в рамках буквально одного курса
Cage
путаем. ща посмотрим
Есть даже каноническая книжка, за время которой создаётся компилятор классического K&G C в ассемблер
Cage
Но я чёт забыл автора
Cage
Сейчас попробую вспомнить
Cage
видимо там ОЧЕНЬ ограниченная часть языка
В классическом C очень ограниченый синтаксис
Defragmented
В классическом C очень ограниченый синтаксис
даже с этим. просто повторить язык как С, не ограничиваясь парой типов переменных, займет куда больше чем курс или 1 книжка
Defragmented
даже без оптимизаций, просто компиляция кода
Vasil
Это понятно во время работы. А некий скачок во время подключения может быть? На входе
Мощность будет потребляться начинает? У нагрузки есть ёмкости?
woddy
если тебе поставили задачу сделать самолет, не нужно делать боинг. вполне летают конструкции из фанеры и с двигателем от запорожца. для курсовой этого достаточно
Anonymous
Я не собираюсь делать что то супер масштабное
Cage
Я не собираюсь делать что то супер масштабное
Ну ты написал выше "компилятор питона" - это сложно, а если это "питонообразный синтаксически язык" и цели чтобы компилировались все коды на питоне у тебя нет, то зависит от подмножества языка которое ты выберешь для реализации
Захар
посоветуйте ибп а то 2 часа назад свет офнули, а пк был включен ну дали свет, включаю пк, а венда такая на нах - бсод пришлось помучаться, выставить озу на хмр, она тогда начала чиниться щас все ок
Anonymous
Ладно. Попробую ещё раз пройтись по ассемблеру. Если не получится понять то сразу буду исполнять после парсинга, без трансляции
Гриб
Мощность будет потребляться начинает? У нагрузки есть ёмкости?
можно соблюсти последовательность включения. У нагрузки емкости нет - светодиод наверно будет
Anonymous
Ладно. Попробую ещё раз пройтись по ассемблеру. Если не получится понять то сразу буду исполнять после парсинга, без трансляции
Греет душу одно: я решил сделать синтакс очень стандартизированным. Типа обязателен пробел при x += 1, вместо x+=1. Упрощает ситуацию в разы. Хотя тесты сейчас уже показали что лексер работает медленно...
Anonymous
это самая малая из проблем
Ты про медленную работу?
Defragmented
Ты про медленную работу?
про огромный фронт работ. тебе нужно пролопатить тысячи страниц документации чтобы скопировать язык. ты не можешь этого сделать за месяцы. поэтому тебе сразу стоит определить тот узкий набор команд который ты сможешь успеть воплотить
Anonymous
базовых операций достаточно, я уже определил
Anonymous
какие именно
Defragmented
напиши очень короткую программу, на 20 строк. и сделай только ту часть языка которая встречается в этом коде.
Cage
И выбери такую часть языка чтобы грамматика была как можно проще, желательно чтобы она не требовала рекурсий при разборе
Anonymous
И выбери такую часть языка чтобы грамматика была как можно проще, желательно чтобы она не требовала рекурсий при разборе
И как это расширять потом если понадобится например дальше идти с проектом и развивать его?
Cage
К тому же да, твой проект заведомо мёртворождённый
Anonymous
В исходной постановке про развитие ничего небыло
Я предположил что может такое произойти
Anonymous
Почему мертворождённый?
Cage
Почему мертворождённый?
А какой в нём смысл в наше время?
Defragmented
Почему мертворождённый?
потому что он гарантированно никуда не приведет. потому что за 10 лет что тебе нужно чтобы скопировать язык сам язык продвинется уже дальше.
Cage
Только образовательные цели
Defragmented
сил 1 человека просто не достаточно чтобы даже догнать скорость изменений в языке
Anonymous
Ну я и об этом.
Например я захотел расширить язык и написать что то что не умею в образовательных целях. А у меня грубо говоря костыль на простейшие операции
Anonymous
Ладно. Тогда хоть что нибудь сделаю.
Cage
Ладно. Тогда хоть что нибудь сделаю.
http://linux-doc.ru/programming/assembler/book/compilers.pdf второе издание книги по созданию компиляторов, обязательно к изучению если хочешь сделать грамотно
Anonymous
Спасибо. Буду читать
Cage
Вот по первому изданию этой книги когда я был в вузе за семестр делали компилятор С
Cage
Второе не читал, но вроде всё на месте
Anonymous
да книга годная
Cage
да книга годная
Ну и если почитаешь то поймёшь что упрощение "после х в х + 1 обязательно пробел" это очень плохое, совершенно ничего не значащее упрощение
Anonymous
ну конкретно для стандартизации оно имеет свои плюсы
Anonymous
плюс я хочу реализовать такую фишку:
Cage
ну конкретно для стандартизации оно имеет свои плюсы
Не имеет, оно выглядит абсолютно лишним и выдающим незнание матчасти ;)
Anonymous
Смотря как посмотреть
Anonymous
Если посмотреть на питон то там море говнокода
Anonymous
к примеру:
Anonymous
if True: # или можно if True : ?
Anonymous
В итоге текст программ некрасивый
Anonymous
или например вызов функции print () <- зачем тут пробел? если лучше print()
Vit
Чиво ты несешь?)
Anonymous
своё видение
Cage
Питон язык довольно зрелый с богатой историей, в любом языке есть то что можно посчитать "некрасивым", а идеального языка, соответственно, не существует. Если что-то кажется тебе неправильным оно вовсе не обязательно таковым является, может ты просто не понимаешь
Vit
Красоту синтакса уже столет как автоматика наводит
Anonymous
или например пробелы или табы
Vit
Пиши хоть print. ( )
Anonymous
Vit
Ну может у тебя кот на пробел упал
Anonymous
так же например можно использовать пробелы для обозначения деклараций
Anonymous
func_name ()
Anonymous
ClassName ()
Anonymous
а для вызова уже без пробелов