Обновить
-1

Пользователь

Отправить сообщение

Замечательная статья, продолжайте!

Вижу, что некоторые комментаторы подталкивают вас далеко вперёд, но я бы хотел обратить внимание на очень важный момент: на работу с памятью. Сейчас у вас лишь есть выделение памяти на стеке (alloca в llvm), но вы ведь 100% захотите выделять память и в куче тоже. Но тогда сразу нужно подумать о том, кто ответственен за это: или разработчик (как в C malloc/free, как в C++ new/delete) или язык (через GC как во многиех языках или посложнее) или как-то ещё.

Это обязательная история, но после этого вас остановит только фантазия

Как уже отмечали: это скорее транспилятор в nodejs, а не интерпретатор на nodejs. Ваша задача решается лексером -> map по токенам -> join в исходник -> запуск.

Долгосрочные планы очень амбициозные, но сразу скажу, что вам с десяток раз придётся всё переписать с нуля, чтобы начать двигаться в правильном направлении.

Раз время позволяет (13 лет) и желание огромно, то рекомендую копать в сторону llvm при учёте крепкого понимания базы (что такое указатели, что есть стек и куча и т.п.). Да, тема очень объемная, вообще не на один день, но повышение хард-скиллов обещаю.

Можете попробовать начать с малого, например классика - пусть код - набор арифметических целых выражений, присваивание и лог в терминал. Задача: написать компилятор. Потом можно и условия/циклы добавить, типы и т.п. И только после этого можно будет подумать над jit или своим интерпретатором.

По крайней мере, это ИМХО, я бы так поступил на вашем месте, если вам действительно интересна тема разработки языков программирования

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

Человек видит моё резюме, там написано, что я работал там-то там-то, список навыков и рабочих мест.

Сколько раз я видел своего HR с горящими глазами "я тебе такого кандидата нашёл! Он везде работал, всё умеет", а на собесе оказывалось, что либо опыт липовый, либо человек за 100 лет опыта 2 раза клавиатуру потрогал. Я не задаю тупые вопросы, но я даю задачки на 5 минут, которые в моём понимании "оскорбительно простые для сеньор левела". И сыпались на них подавляющее большинство. Кто не сыпался - того сразу брал на работу. Просто потому что выбирать почти не из кого.

P. S. Сейчас мне удалось сократить количество собесов буквально в 20 раз тем, что HR всем без исключения даёт 1 задачку, которую делать 5 минут, а проверять мне 1 минуту (chat gpt до сих пор даëт неправильное решение на неё).

Я специально потратил время, чтобы изучить:

Это в лучшем случае express. Ни о какой серьёзной модульной разработке речи не идёт

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность