Giter Site home page Giter Site logo

example-functional-compiler's People

Contributors

natefaubion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

example-functional-compiler's Issues

modular components

Since you have a common intermediate compilation language of system f, it would be really nice if you had a way of stringing your stages together with something like pipes package so that it would be easy to use your modules with differing compilation targets.

Interoperability seems to be severely lacking in most compiler designs.

language server

Did you consider a language server? It seems like language servers are a major advantage that new development environments can utilize now.

README Print Section

The Print section does not state what it actually does.

Does it print documentation, target language like JavaScript/assembly?

lazy compilation for JIT

It seems like lazy compilation would be advantageous for a repl or quick interpretation to quickly rerun a modified code without waiting for compilation.

data structure to define language

Maybe this has been tried before but have you considered defining you language syntax as a data structure in a common format like json, yaml, dhall so that there can be a common reference for generating a parser for the multiple implementations of the parser.

This would allow parsers to be generated from the defined syntax so that there could be:

  • all parser implementation would remain up to date without as much maintenance since they generate the parser instead of having a static implementation of the parser that needs to be
  • clear changes to the actual language syntax in the version diffs not just the parser implementation
  • This makes it a dynamic language that is self modifying and allows for module, function, line level language extensions/contractions
  • less software rot because the code can specify which language version it is using and on the fly generate parsers for that version

Questions:

  • What should the data structure actually define? syntax to ast, syntax to lexer to ast
  • Should it define the progression of steps from syntax to lexed tokens to ast to system f? I don't like this solution because it constrains the modularity. Perhaps they could be separate definition files. Anyways, better suggestions would be appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.