Designing and Implementing a Programming Language
Designing and Implementing a Programming Language
A dynamic, Python-compatible language built from scratch with clean syntax and functional paradigms.
PROJECT
Chotulang (Version 0.0.7)
DEVELOPER
Vishnu Deviprasad Shetty
TYPE
Language Design & Interpreter Development
Tooling & Interface
Custom IDE & REPL Environment
System Architecture Diagram
Functional Syntax & Pipelines
The Premise
EXECUTIVE SUMMARY
Chotulang is an ambitious endeavor to create a programming language from the ground up. It focuses on delivering a dynamic, Python-compatible environment that emphasizes clean syntax, functional programming paradigms, and an improved developer experience.
PROBLEM & MOTIVATION
Modern development often involves wrestling with syntactic baggage and opaque error reporting. The primary motivation behind Chotulang was to strip away unnecessary complexity and provide developers with pinpoint accuracy when things go wrong.
By implementing highly specific error reporting and resolving common developer pain points, Chotulang aims to significantly improve the overall Developer Experience (DX).
System Architecture
Lexical Analyzer
Responsible for precise token conversion and handling complex multi-character operators.
- Feature: Token Conversion
- Operators: |> , ??, ..
Syntax Parser
Generates the Abstract Syntax Tree (AST) and manages intricate sub-expression handling for method chaining.
- Core: AST Generation
- Logic: Sub-expression Handler
Evaluation Engine
Executes the AST, managing lexical scoping and the sophisticated implementation of closures.
- Execution: AST Traversal
- Memory: Lexical Scoping & Closures
Conclusion
Chotulang successfully demonstrates a complete, Turing-complete system-level programming logic built from the ground up. It serves as a testament to rigorous architectural planning and a commitment to elegant, functional design principles.