{"id":15482147,"url":"https://github.com/vijayphoenix/compiler-written-in-haskell","last_synced_at":"2025-04-22T15:45:57.113Z","repository":{"id":72891925,"uuid":"181446086","full_name":"vijayphoenix/Compiler-written-in-Haskell","owner":"vijayphoenix","description":"A Turing complete language 😉","archived":false,"fork":false,"pushed_at":"2020-10-03T18:59:13.000Z","size":37820,"stargazers_count":42,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-17T04:19:32.009Z","etag":null,"topics":["compiler","haskell","iith","jit-compiler","just-in-time","language","llvm","llvm-hs","parsing","popl","toy-compiler","toy-language"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vijayphoenix.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-15T08:36:52.000Z","updated_at":"2025-03-18T23:20:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"cba95775-60ea-4689-8a13-475820ce65d5","html_url":"https://github.com/vijayphoenix/Compiler-written-in-Haskell","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijayphoenix%2FCompiler-written-in-Haskell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijayphoenix%2FCompiler-written-in-Haskell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijayphoenix%2FCompiler-written-in-Haskell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijayphoenix%2FCompiler-written-in-Haskell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vijayphoenix","download_url":"https://codeload.github.com/vijayphoenix/Compiler-written-in-Haskell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250271747,"owners_count":21403254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","haskell","iith","jit-compiler","just-in-time","language","llvm","llvm-hs","parsing","popl","toy-compiler","toy-language"],"created_at":"2024-10-02T05:08:08.589Z","updated_at":"2025-04-22T15:45:57.095Z","avatar_url":"https://github.com/vijayphoenix.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/vijayphoenix/Compiler-written-in-Haskell.svg?token=67qmZmyfex1ST6G5tpZK\u0026branch=master)](https://travis-ci.com/vijayphoenix/Compiler-written-in-Haskell)\n[![CircleCI](https://circleci.com/gh/vijayphoenix/Compiler-written-in-Haskell/tree/master.svg?style=svg)](https://circleci.com/gh/vijayphoenix/Compiler-written-in-Haskell/tree/master)\n\n# Implementing a JIT Compiled Language with Haskell   \n\n## About  \n\nThe project aimed to implement a simple procedural language.     \nWe named it **HASKULL** :-)  \nThe frontend is written in Haskell and the backend it managed LLVM-hs-pure package.   \nThe project extensively uses Monads, State Monads, Applicative functors and Transformers.  \n\n### Built With  \n\nYou will need GHC 7.8 or newer as well as LLVM 4.0.  \n\n### Installation  \n\nClone the repository:    \n\n```\ngit clone https://github.com/vijayphoenix/Compiler-written-in-Haskell.git\n```\n\nBrowse to the directory where all the files of this repository are located.  \n\nRun the following command to build the project.  \n\n```\nstack build \n```\n# Usage  \n\nRun the following command to get an interactive console.  \n\n```\nstack repl\n```\nType \"main\" in the interactive console.  \n\nWrite any code using the following Syntax rules.   \n\n```\nSyntax rules: \n[A] means optional arg. of type A .\n\nAll the symbol starting with lower-case letter are terminal(lexer units).\nAll the operators are left associative\n\nCommand = Expr ;\nExpr : DeclarationStmt| FuncCallStmt | LiteralStmt | ifthenStmt | (Expr)\n\nDeclarationStmt : ExternDecl\n\nExternDecl : extern Name([ArgList]) : Type \n\nType : int \nVList: Name[, VList]\n\nFuncCallStmt : Call \nCall : Name ( [Args] ) \n\nBinOpCallStmt : BinOpCall\nBinOpCall : Expr Op Expr \n\nOp : + | - | * | / | ; | \u003c\nreserved keywords: int char def extern string if then else\nArgs : Expr[, Args]\n\nLiteralStmt : IntLiteral \nIntLiteral  : integer\n\nName : ident\nArgList : Type Name[, ArgList]\n\nFunc : def Name([ArgList]) : Type { Command-list }\nCommand-list = Command [Command-list]\n\nCommand = Expr ;\n```\nSome sample example functions are provided in examples.txt file.\nFor more insight on the language grammar, refer to Language.hs, AST.hs files.    \n\n\n### Documentation  \n\nThis project is documented under [Haddock](https://www.haskell.org/haddock/#Documentation) Documentation  \n\nTo generate documentation run:  \n\n```\nstack haddock\n```\n\n### Authors  \n\n* [**Vijay Tadikamalla**](https://github.com/vijayphoenix)  \n* [**Anjani Kumar**](https://github.com/anjani-1)  \n* [**Anupam Saini**](https://github.com/anupamsaini98)  \n* [**Yogesh Singh**](https://github.com/yo5sh)  \n\n#### License  \n* [LICENSE](LICENSE)  \n\n#### Acknowledgments  \n* [Haskell LLVM JIT Compiler Tutorial](http://www.stephendiehl.com/llvm)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijayphoenix%2Fcompiler-written-in-haskell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvijayphoenix%2Fcompiler-written-in-haskell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijayphoenix%2Fcompiler-written-in-haskell/lists"}