Creating TuffScript: Exploring Esoteric Programming Languages and Their Foundations

arman takmazyanarman takmazyan
2 min read

A while back, I needed to create a presentation on interpreters, compilers, transpilers, and programming languages. I thought the best way to explain the basic concepts necessary to dive deep into these topics was to create a small, perhaps even useless or esoteric, language that we could use to demonstrate and explain everything.

That's how I wrote TuffScript.

TuffScript is an esoteric programming language designed for learning the underlying logic of interpretation. It uses the Armenian alphabet and Armenian words.

Although the language itself uses only Armenian words, I will write a series of articles describing the basic knowledge I used to create this toy language from scratch.

In the upcoming series, we will explore the following topics:

Grammar

  1. Chomsky Hierarchy

  2. Fundamental Definitions: Terminals, Non-Terminals

  3. Regular Grammars

  4. Context-free Grammars

  5. Leftmost and Rightmost Derivations

  6. Backus-Naur Form

  7. Precedence And Associativity

  8. Ambiguity

  9. Semantics

  10. Lexical analysis

  11. Syntax analysis

  12. Evaluation

Arithmetic Expressions Evaluator: Recursive Top-Down Parser

  1. Lexer

  2. Eliminating Left Recursion

  3. Visitor Pattern

  4. Parser

  5. Interpreter

TuffScript

  1. A Preview

  2. Tokenizer

  3. Parser

  4. Interpreter

VS Code Language Extensions

  1. TuffScript Language Configuration

  2. TuffScript Formatter

  3. TuffScript Formatter Extension

  4. TuffScript Linter

  5. TuffScript Linter Extension

Transpilers

  1. TuffScript-JavaScript Transpiler

  2. TuffScript Web Starter: Running in Browser Environment

  3. TuffScript-Brainf*ck Interpreter: Running in Node Environment

This series will provide insights into the workings of programming languages and guide you through the process of building your own toy language. Stay tuned for more details and exciting content!

3
Subscribe to my newsletter

Read articles from arman takmazyan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

arman takmazyan
arman takmazyan

Passionate about building high-performance web applications with React. In my free time, I love diving into the fascinating world of programming language principles and uncovering their intricacies.