Создайте свои навыки и свой портфель
На мой взгляд, это был бы очень хороший опыт обучения, так как это:
- заставить вас заглянуть под капот ,
- направлять вас, чтобы узнать, как все происходит внутри ,
- рекомендуем вам посмотреть и сравнить другие реализации ,
- держать свои навыки алгоритмики в курсе ,
- заставить вас кодировать (и, надеюсь, документировать ) много, что тоже неплохо,
- дать вам значительный проект и кодовую базу, которую вы могли бы поделиться в Интернете для всеобщего обозрения, для:
- личное удовольствие и удовлетворение ,
- демонстрируя свои навыки потенциальным работодателям,
- общаться и обмениваться со сверстниками, заинтересованными в той же области,
- потенциально позволить ему перерасти во что-то большее ...
Так что я считаю это продуктивным, полезным и в целом «стоящим».
Начать
Теперь вы можете использовать разные подходы, в зависимости от того, сколько времени вы планируете потратить на это ...:
- Если у вас есть ограниченный период времени, я бы сказал, погрузиться и закодировать вещь.
- Если у вас более широкие временные рамки, тогда вы действительно можете пойти по многогранному пути и написать спецификации, учебные пособия, руководства и т. Д.
Начните с малого
Я бы порекомендовал вам начать с малого . Никто никогда, насколько я знаю, не писал прямо такой потрясающий язык. Вы спотыкаетесь и падаете, и терпите неудачу, и терпите неудачу и терпите неудачу . Тогда вы добьетесь успеха в том, что это работает, но все еще отстой, поэтому вы начинаете все сначала. И вы добавляете новые функции, и это наконец становится классным, но внезапно вы понимаете, что есть фундаментальная концепция, которую вы облажали в начале. Итак, вы начинаете все сначала ...
Кажется, очень познавательно для меня.
Идите дальше (и поделитесь ссылкой с нами).
Маленький, как в «коротком»
Но опять же, я бы порекомендовал вам начать с малого . Не бойтесь, если люди скажут, что это займет много кода и времени. Не обязательно, если вы не стремитесь к сложному языку. Алан Кей и другие
инженеры Xerox PARC предположительно разработали раннюю версию
Smalltalk, которая помещалась на одном листе бумаги , в качестве цели для краткости (см. Xerox PARC: Dealers of Lightning для подробностей об истории PARC ). Кажется хорошим, образовательным и достаточно ограниченным подходом (пока он не жертвует удобочитаемостью).
Маленький, как в «стесненных»
Вам не нужно сразу поддерживать продвинутую систему типов, функции высшего порядка и набор из 42 различных парадигм. Это может быть просто язык математических выражений.
Повторно использовать (и заглянуть) чужие знания
Вы также можете взглянуть на инструменты, которые используются для написания языков с нуля. Вы можете сами все заново реализовать, но, возможно, также стоит взглянуть, например, на существующие лексеры и генераторы парсеров.
И, очевидно, вы можете прочитать о конструкции компилятора в целом.
Теперь, если мы изменим ваш вопрос так, чтобы он был "НАИБОЛЕЕ продуктивным использованием вашего времени?" это становится совершенно другой проблемой :)
Есть множество других обучающих проектов, которые вы могли бы реализовать, и которые бы обучали и демонстрировали ваши навыки одинаково хорошо, если не лучше. Это зависит от того, к чему вы хотите стремиться.