awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
kanaka avatar

kanaka/mal

0
View on GitHub↗
10,665 Stars·2,690 Forks·Assembly·5 Aufrufe

Mal

This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees.

The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowing the interpreter logic to be implemented across diverse programming languages and runtimes.

The implementation covers a broad range of language capabilities, including lexical scope management, tail-call optimization to prevent stack overflow, and a host-language bridge for interoperability. It includes developer tooling such as a programmable read-eval-print loop for real-time execution in consoles or web browsers, as well as a functional test harness for implementation verification.

Features

  • Interpreter Implementations - Implements a functional Lisp interpreter from scratch to demonstrate core language design principles.
  • Pedagogical Interpreters - Provides a pedagogical implementation of a Lisp interpreter designed to teach core language internals.
  • Programming Language Education - Provides a structured technical guide to teach core programming language concepts like ASTs and lexical scoping.
  • Language Implementation Frameworks - Provides a framework for implementing a custom programming language with specific syntax and evaluation logic.
  • Expression Evaluators - Provides a recursive evaluation engine that processes S-expression abstract syntax trees.
  • Function Definitions - Supports the definition of user-created functions and closures that capture the surrounding lexical environment.
  • Host Runtime Integration - Provides an execution layer that allows the Lisp interpreter to call JavaScript functions and host objects.
  • JavaScript Interoperability - Integrates the Lisp environment with JavaScript to call external methods and exchange data.
  • Language Bridges - Provides a bridge for translating data types and function calls between the Lisp environment and the host runtime.
  • Metaprogramming - Implements metaprogramming capabilities including macros and quoting to transform expressions during evaluation.
  • Metaprogramming & Macros - Utilizes a code-as-data workflow with macros and quoting to generate new expressions during evaluation.
  • Macro Expansion Engines - Implements a macro expansion system that transforms unevaluated code into new expressions.
  • Metaprogramming Frameworks - Ships a toolkit for implementing macros and code-as-data transformations within a custom language environment.
  • LISP Programming Resources - Serves as a comprehensive technical guide for building a functional Lisp language from scratch.
  • Quoting & Quasiquoting - Provides quoting and quasiquoting to treat code as data for generating new expressions.
  • Lexical Scoping Mechanisms - Implements lexical scoping mechanisms to resolve symbols through hierarchical parent-child environment nesting.
  • Abstract Syntax Tree Parsing - Converts raw Lisp source strings into a structured abstract syntax tree via recursive descent parsing.
  • Lexical Environment Nesting - Stores symbol-value mappings in nested environments to support local variables and lexical scoping.
  • Language Syntax Parsers - Implements a parser that translates Lisp S-expression syntax into abstract syntax trees for evaluation.
  • JavaScript Interoperability - Bridges the Lisp environment with JavaScript to invoke external methods and exchange data.
  • Dynamic Data Structures - Utilizes dynamic data structures such as maps, lists, vectors, and atoms to manage internal state.
  • Read-Eval-Print Loops - Provides an interactive read-eval-print loop for real-time code execution and testing.
  • Multi-Language Implementations - Offers reference implementations of the interpreter logic across multiple different programming languages.
  • Host-Agnostic Implementations - Allows the interpreter logic to be implemented across diverse programming languages to demonstrate agnostic design principles.
  • Tail-Call Optimizations - Implements tail-call optimization to prevent stack overflow during recursive function execution.
  • Value Manipulation Utilities - Ships built-in value manipulation utilities for mapping, filtering, and accessing data structure elements.
  • Incremental Implementations - Organizes the interpreter build process into a sequence of verifiable, incremental implementation stages.
  • Compiler Development - A functional Lisp implementation for learning compiler internals.
  • Compilers and Interpreters - Lisp interpreter implemented in many languages.
  • Language Implementations - A multi-language implementation of a Clojure-like Lisp.
  • Multi-Platform Implementations - Educational Lisp with implementations in dozens of host languages.
  • Programming Languages - Multi-language Lisp interpreter implementation guide.
  • Rust in practice - Listed in the “Rust in practice” section of the Rust Learning awesome list.

Star-Verlauf

Star-Verlauf für kanaka/malStar-Verlauf für kanaka/mal

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Mal

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Mal.
  • rust-lang/rust-by-exampleAvatar von rust-lang

    rust-lang/rust-by-example

    8,026Auf GitHub ansehen↗

    This project is an interactive programming education resource and tutorial designed for learning the Rust programming language and systems programming concepts. It provides a collection of runnable and editable code examples that serve as a practical reference for language syntax and implementation. The resource features an interactive code sandbox that allows users to execute and test code snippets in real time. It emphasizes the verification of technical accuracy by executing embedded code blocks during the build process to ensure all examples remain functional. The content covers a compre

    Handlebars
    Auf GitHub ansehen↗8,026
  • norvig/paip-lispAvatar von norvig

    norvig/paip-lisp

    7,465Auf GitHub ansehen↗

    This project is a comprehensive Lisp AI implementation library that provides reference implementations for various artificial intelligence paradigms and symbolic algorithms. It functions as a multi-purpose toolkit containing a logic programming engine, a natural language processing suite, and a symbolic mathematics toolkit. The library is distinguished by its diverse architectural frameworks, including a Prolog-style execution engine that uses unification and goal-driven backtracking, and a system for simulating human decision-making through expert system shells and certainty factors. It also

    Common Lisp
    Auf GitHub ansehen↗7,465
  • antonmedv/exprAvatar von antonmedv

    antonmedv/expr

    7,905Auf GitHub ansehen↗

    Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime without requiring the application to be recompiled. The system utilizes a sandboxed logic executor to run expressions without side effects. It ensures program termination by employing instruction-level loop detection to prevent infinite loops and isolates the evaluation process from the host system. The engine employs a bytecode-based virtual machine and abstract syntax tree analysis to achieve ex

    Go
    Auf GitHub ansehen↗7,905
  • google/cel-goAvatar von google

    google/cel-go

    2,875Auf GitHub ansehen↗

    cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of non-Turing complete, side-effect-free expressions. It functions as an embedded expression engine that converts human-readable strings into type-checked abstract syntax trees to ensure safe execution. The system utilizes a compile-once evaluate-many model, parsing and validating expressions into cached programs for repeated execution across different datasets. It further distinguishes itself as a partial state evaluator, using commutative logic to compute results and return resid

    Gocelexpressionexpression-evaluator
    Auf GitHub ansehen↗2,875
Alle 30 Alternativen zu Mal anzeigen→

Häufig gestellte Fragen

Was macht kanaka/mal?

This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees.

Was sind die Hauptfunktionen von kanaka/mal?

Die Hauptfunktionen von kanaka/mal sind: Interpreter Implementations, Pedagogical Interpreters, Programming Language Education, Language Implementation Frameworks, Expression Evaluators, Function Definitions, Host Runtime Integration, JavaScript Interoperability.

Welche Open-Source-Alternativen gibt es zu kanaka/mal?

Open-Source-Alternativen zu kanaka/mal sind unter anderem: rust-lang/rust-by-example — This project is an interactive programming education resource and tutorial designed for learning the Rust programming… norvig/paip-lisp — This project is a comprehensive Lisp AI implementation library that provides reference implementations for various… antonmedv/expr — Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic… google/cel-go — cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of… clojure/clojurescript — ClojureScript is a Lisp-based compiler and runtime that translates Clojure source code into JavaScript. It enables… frege/frege — Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for…