Crafting a interpreter with Node.js

Crafting a interpreter with Node.js

I'm my journey with computer programming, create a language is a top mosted skill who i ever wanted to express everything related to instructions and algorithms to anchieve my goals and known more how a machinary works. I have contributed to some projects to try leverage those new set of habilities. But one discovery made my life so more interetingly, by found this resource:

Crafting Interpreters

This book changed my life completly, by doing a interpreter called nlox:

GitHub - ktfth/nlox
Contribute to ktfth/nlox development by creating an account on GitHub.

A lot of implementations have been referenced to this book repository and see how other people not just the author, creating amazing pieces of software, and the discovery not stop just on create something like this, you need to go more deeply trying to understand and produce with a metalanguage how your language actualy works. Other aspects like get deeply involved how your interpreter or compiler realy execute instructions and what need to be exposed to write more complex programs with a low effort and delivery to different kind of platforms.

Following the work of books author, we have in the vast majority of cases languages like:

Dart programming language
Dart is a client-optimized language for fast apps on any platform

As part of the team he was involved with a great work but not stop here, the new language created by him follow some principles to script with a very robust and fast way to do things like concurrent class based code with less harm like in other languages. The language is called wren and you can see and interact with the project here:

– Wren

With all of resources in hand, i have learned a lot of good knowledge to create more pieces of technology with some things in mind:

  • AST matters
  • Delivery things to different kind of archtecures could have a high price to pay
  • Choose languages based on strong points like care with GC change your life
  • Safe code is a game change
  • And the last, new conecpts need to be introduced to be competitive

I'm research and involvement to create disruptive technologies, i have contributed to rome on the first stage before the rewritten to Rust, a lot of moments made me more skilled with this tools and of course compilers. The amazing team have been maded a lot of progress on the field of compilers with new proposals and implementations. The project can speak by itself:

GitHub - rome/tools: The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.
The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS. - GitHub - rome/tools: The Rome Toolchain. A linter, compiler, bundler, and more for J...

Now my journey is to create tools who perform better in an optmized way for the cloud, actually is a movement made by a lot of companies to scale more and more your products caring on a well formed base of knowledge with cases in production. My primary goal is to understand better how tools like language works, and do a better job with that in pace of time to understand techniques and performance aspects to reduce costs and profit better.

Speaking in the modern approachs the way like typescript have evoluted is remarkable and this enrich your study to leverage that better:

With this we can have final thoughts, know better how a technologie works made you more productive and polished accross the time, this can change your career and need to be on your radar. This is my share with you and stay tunned for more reources to change your life to something better.

Thank you