Как реализовать модульную систему для языка типа JS? - PullRequest
0 голосов
/ 19 апреля 2020

В настоящее время я научился писать свой собственный компилятор, следуя этому руководству: https://craftinginterpreters.com/. Но автор не упомянул, как реализовать модульную систему для языка. Я также не могу найти какой-либо простой учебник по inte rnet, который бы дал мне знать, чему я должен научиться, чтобы реализовать это.

Действительно ценю, если кто-нибудь знает какой-нибудь хороший материал по этой теме c.

1 Ответ

0 голосов
/ 19 апреля 2020

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

То, что вы найдете, если вы посмотрите, это долгие дискуссии о том, как починить сломанную систему модулей для разных языков. Вы найдете эти обсуждения, потому что почти каждый язык начинался с модульной системы (или имел систему модульного подключения), которая не работала должным образом. Практически каждый язык должен был либо внедрить новую модульную систему на своем пути с вытекающими отсюда проблемами обратной совместимости, либо смириться с тем, что неисправимо fl aws, обнаруженным в исходной реализации. Прочитав эти обсуждения, вы многому научитесь.

Одна из причин этого заключается в том, что многие языки были разработаны программистами, которые практически не имели опыта работы с разумной модульной системой. Постарайтесь не попасть в эту категорию. Если у вас есть опыт работы с одной или несколькими модульными системами, используйте этот опыт для разработки лучшей. И прочитайте столько, сколько вы можете найти у заслуживающих доверия критиков этих систем.

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

Удачи!

...