Code Monkey home page Code Monkey logo

lua-languages's Introduction

lua-languages

Languages that compile to Lua

Lua is famously and deceptively simple and enables many different programming paradigms. Like Javascript, it's possible to make it shine by adding more specialized syntax. I started this list to document the languages I found looking for an ML/F# like language.

Note: Unmaintained languages have been marked with (*) and Archived languages have been marked with (^)

Pull requests welcome!

Compile to bytecode

An intriguing new avenue of development started by Rochus Keller for an Oberon to LuaJIT bytecode compiler provides an elegant way of leveraging the ecosystem:

VM forks

Tier 1

For lack of a better designator, these projects are well known, or compiles existing languages

Go/Go-like

Typed Lua

Binary compiled Lua-like

Strongly typed

Javascript

TypeScript

Functional

Lisp

There are so many Lisp variants, they deserve their own category.

C

Python

Ruby

Rust

Unique

Other

lua-languages's People

Contributors

abdullah2993 avatar andre-la avatar apicici avatar atilde avatar bkudria avatar capsadmin avatar cattokomo avatar catwell avatar hengestone avatar jamtoad avatar jgarte avatar mcjack123 avatar mystery-z avatar postsolar avatar presidentbeef avatar saharnooby avatar shalokshalom avatar thefox6 avatar w1kee 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lua-languages's Issues

Remove slua and clua32 from list?

Slua doesn't compile from c to lua, but from lua to c. Clua32 is a compiler written in lua for c, but it compiles to native code.

Compiling Python to Lua

There's a Python-to-Lua compiler called python-lua, but it isn't included in this list of Python-to-Lua compilers. Should this compiler be included in the list?

Update roblox.py/roblox-pyc

It also now supports C, C++, and Lunar (a modified version a MoonScript made for roblox.

Also its name has been changed to roblox-pyc and the link to the github has the new name.

Originally posted by @hengestone in #45 (comment)

could someone build a windows x64 exe?

I am interest in functional language. but i don't know how to build listed project.

I only build Hypatia success. all other falled.

Functional
https://amulet.works/ An ML-like functional programming language that transpiles to lua
https://github.com/kindl/Hypatia Hypatia, an ML-like language that transpiles to Lua
https://github.com/ptol/oczor Haskell-like language that compiles to Lua, Javascript, Emacs lisp and Ruby
https://github.com/iitalics/Lua-ML Basic ML language
https://github.com/hengestone/pumpkin ML-like language with an experimental Lua back-end
https://github.com/minoki/LunarML A Standard ML compiler that produces Lua

Add Erde

Howdy, I was doing some digging and discovered another language that complies into Lua called Erde.

https://erde-lang.github.io

I also discovered another language called Wren, but I don't believe it compiles into Lua but its extremely similar to Lua.

https://wren.io

Archived/unmaintained Languages

I've just noticed that Amulet is no longer being maintained and the owner of the Github repo has archived it. Is it okay for Amulet to stay on, or should there be a different section/category called archived languages?

Compiling to LuaJIT bytecode

I'm particularly interested in reusing LuaJIT on bytecode level. As far as I can see my Oberon implementation currently seems to be the only one directly compiling to LuaJIT bytecode, i.e. everyone else seems to transpile to Lua source code (maybe there is another language doing this which I missed up to now). The major disadvantage of Lua as an intermediate language is the fact that line numbers reported by the debugger refer to the wrong source file (the intermediate Lua instead of the original source). I implemented a full IDE (https://github.com/rochus-keller/oberon/#oberon-ide-features) which - with a slight modification of LuaJIT - even supports row and column numbers (not only row numbers as with the original Lua engines). I don't see a way how to do this when Lua is the intermediate language. Also worth mentioning that the Oberon code compiled to bytecode runs nearly the same speed as the Oberon to native compiled version and twice as fast as the Oberon to Lua source code transpiled version (see https://github.com/rochus-keller/Oberon/blob/master/testcases/Hennessy_Results).

For me (and maybe others too) it would be helpful to explicitly track on the list which languages compile to Lua source code or LuaJIT bytecode. For people who would like to implement a bytecode backend you could add https://github.com/rochus-keller/LjTools and https://github.com/franko/luajit-lang-toolkit. Thanks.

Oberon to LuaJIT transpiler

Nice collection, just discovered now. In case you're interested, this code currently translates Oberon-07 to LuaJIT specific Lua source code: https://github.com/rochus-keller/Oberon/. Here is an article describing the concepts: https://medium.com/@rochus.keller/implementing-call-by-reference-and-call-by-name-in-lua-47b9d1003cc2. A direct to bytecode compiler is on its way. The goal is to have an easy to handle platform to implement various frontends of statically/strongly typed languages, leaner than an LLVM solution, and easier and faster than the RPython toolchain.
There is already some infrastructure for LuaJIT bytecode analysis and an alternative interpreter implementation for exploration purpose: https://github.com/rochus-keller/LjTools.

Add Wren

I believe this could go under the Binary Compiled Lua Like section?

Its got Lua Syntax kinda... It may be a stretch.

https://wren.io/

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.