{"id":40836476,"url":"https://github.com/denisdubochevalier/lambdac","last_synced_at":"2026-01-21T22:38:37.375Z","repository":{"id":191269507,"uuid":"684300157","full_name":"denisdubochevalier/lambdac","owner":"denisdubochevalier","description":"WIP: Untyped lambda calculus compiler","archived":false,"fork":false,"pushed_at":"2024-05-12T22:05:21.000Z","size":239,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-12T23:19:10.544Z","etag":null,"topics":["compiler-design","functional-programming","lambda-calculus","monadic"],"latest_commit_sha":null,"homepage":"https://denisdubochevalier.github.io/lambdac/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denisdubochevalier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-28T21:25:26.000Z","updated_at":"2024-05-12T22:05:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e7a8184-86ae-4a00-8856-e21be5b6396a","html_url":"https://github.com/denisdubochevalier/lambdac","commit_stats":{"total_commits":72,"total_committers":2,"mean_commits":36.0,"dds":"0.16666666666666663","last_synced_commit":"fd659a9ffe510d7c0a1fd05b2dd5b9013fe65edf"},"previous_names":["denisdubochevalier/lambdac"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/denisdubochevalier/lambdac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisdubochevalier%2Flambdac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisdubochevalier%2Flambdac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisdubochevalier%2Flambdac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisdubochevalier%2Flambdac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denisdubochevalier","download_url":"https://codeload.github.com/denisdubochevalier/lambdac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisdubochevalier%2Flambdac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28645551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler-design","functional-programming","lambda-calculus","monadic"],"created_at":"2026-01-21T22:38:37.311Z","updated_at":"2026-01-21T22:38:37.368Z","avatar_url":"https://github.com/denisdubochevalier.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![λ.c](/lambdac_logo.png)\n\n# λ.c\n\n[![License: BSD 2-Clause + Charity](https://img.shields.io/badge/License-BSD%202--Clause%20%2B%20Charity-blue)](LICENSE)\n![GitHub go.mod Go version (subdirectory of monorepo)](https://img.shields.io/github/go-mod/go-version/denisdubochevalier/lambdac)\n[![GoDoc](https://godoc.org/github.com/denisdubochevalier/lambdac?status.svg)](https://pkg.go.dev/github.com/denisdubochevalier/lambdac)\n![Build Status](https://github.com/denisdubochevalier/lambdac/actions/workflows/go.yml/badge.svg)\n![Lint Status](https://github.com/denisdubochevalier/lambdac/actions/workflows/golangci-lint.yml/badge.svg)\n[![Go report](https://goreportcard.com/badge/github.com/denisdubochevalier/lambdac)](https://goreportcard.com/report/github.com/denisdubochevalier/lambdac)\n[![Coverage](https://img.shields.io/codecov/c/github/denisdubochevalier/lambdac)](https://codecov.io/gh/denisdubochevalier/lambdac)\n\n## Unleash the Power of Untyped Lambda Calculus\n\nCrafted with an unwavering focus on simplicity and elegance, λ.c is more than\njust a minimalist compiler. It's a vision of what computing can be at its most\nelemental.\n\n**🚨 Notice**: We're in the throes of initial development. The codebase is\nexperimental—perfect for the brave of heart and curious of mind. Come, be a\npioneer!\n[See what we're building →](https://denisdubochevalier.github.io/lambdac/post)\n\n## Table of Contents\n\n- [Current Features](#current-features)\n- [Roadmap](#roadmap)\n- [Documentation](#documentation)\n- [Installation](#installation)\n- [Contribute](#contribute)\n- [A Note on Kindness](#a-note-on-kindness)\n- [License](#license)\n\n## Current Features\n\n### The Gateway: Lexer\n\nAs of now, our journey into untyped lambda calculus is heralded by a fully\noperational lexer. This initial offering brings with it:\n\n- Tokenization of basic lambda calculus syntax: variables, lambdas, and\n  parentheses.\n- Robust error handling for unexpected tokens.\n- A glimpse into the kind of meticulous craftsmanship that will define future\n  stages of this project.\n\n## Roadmap\n\n### AST Generation (In Progress)\n\n- Create a robust and extensible AST to represent lambda calculus expressions.\n- Implement parsing logic that translates token streams into the AST.\n\n### Semantic Analysis (Upcoming)\n\n- Validate the logical coherence of expressions.\n- Introduce scope resolution and perform alpha-renaming as necessary.\n\n### Intermediate Representations (Future)\n\n- Translate the AST into one or more intermediate forms for optimization.\n- Experiment with graph-based representations like Single Static Assignment\n  (SSA).\n\n### Optimization Techniques (Future)\n\n- Implement constant folding, dead code elimination, and other classical\n  optimization strategies.\n- Explore lambda calculus-specific optimizations.\n\n### Backend Generation (Future)\n\n- Translate intermediate forms into target machine code or another high-level\n  language.\n- Experiment with generating LLVM IR or WebAssembly for broader platform\n  support.\n\n### Runtime Environment (Future)\n\n- If applicable, develop a minimal runtime to manage program execution.\n- Consider garbage collection or other memory management strategies.\n\n### Documentation and Examples (Ongoing)\n\n- Continue to document the architecture, algorithms, and design patterns used.\n- Create example programs to demonstrate features and educational use-cases.\n\n### Community Building (Ongoing)\n\n- Engage with early users to gather feedback and iterate.\n- Develop contributor guidelines and good first issues to welcome new\n  developers.\n\n## Documentation\n\nDive deep into the inner workings of λ.c through our\n[detailed documentation](https://denisdubochevalier.github.io/lambdac). Take\nyour understanding from zero to hero—no calculus textbook required!\n\n## Installation\n\nFollow the path of enlightenment:\n\n```sh\n$ git clone git@github.com:denisdubochevalier/lambdac.git\n$ cd lambdac\n$ make \u0026\u0026 make install\n```\n\n## Contribute\n\nDare to contribute? It's simple:\n\n1. Fork this repository.\n2. Check out your own feature branch:\n   `git checkout -b feature/wondrous-feature`.\n3. Craft your magic: `git commit -am 'Add my wondrous feature'`.\n4. Share with the world: `git push origin feature/wondrous-feature`.\n5. Open a pull request and join the ranks of the enlightened.\n\nFor even more details, consult our [Contributing Guide](/CONTRIBUTING.md).\n\n## A Note on Kindness\n\nThough it costs nothing to use λ.c, consider extending your kindness by donating\nto the [Electronic Frontier Foundation (EFF)](https://www.eff.org). It's not\nrequired, but it's a way to contribute to the fight for civil liberties in the\ndigital world.\n\n## License\n\nλ.c is released under the BSD 2-Clause License. See the [LICENSE](/LICENSE) file\nfor details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisdubochevalier%2Flambdac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenisdubochevalier%2Flambdac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisdubochevalier%2Flambdac/lists"}