Version

The current version of Sempiler core is 0.1.39.

Distros

Sempiler is currently available in the following formats:

Sources

Sempiler currently supports the following languages as source code input:

TypeScript

TypeScript is a suitable source language for the project given it’s expressive, modern syntax and well defined type system.

It is accessible to native programmers, and an easy transition syntactically for the many web developers who currently use JavaScript as their primary programming language.

Targets

Sempiler currently supports the following targets for native code emission:

C++

C++ is still incredibly popular and will continue to be given it’s role as the de facto language of choice for the AAA game industry and CPU intensive projects like TensorFlow.

By targeting C++ we can write truly native desktop apps on platforms like Windows without needing to host them inside a virtualization layer.

We can even build WASM web apps by using emscripten stub APIs in TypeScript, and sempiling to C++ 🤖

Swift

Initial Swift support was introduced shortly after C++ because it is fundamentally different semantically from the C family of languages, which helped in establishing the validity of the sempiler concept.

Moreover, it allows us to sempile to truly native mobile apps from a web language without the use of a heavy framework or virtual machine on the client.

And More to come…

Contributing

The project is in the early stages so we thank you for your patience, and greatly appreciate your interest.

Issues & Requests

Bug reports and feature requests can be submitted on the Github repository.

General questions and comments can be submitted via Twitter.

If the problem is missing support for a language construct please submit this as a feature request rather than a bug.

In either case please include the following (where applicable):

This information will be conducive to a focused and efficient discussion.

Please always be respectful to other community members - no matter how frustrating a bug or missing feature is!

Stub APIs

If you would like to write stub APIs for core symbols or popular libraries on target platforms that would be awesome!

For now please submit them as a feature request for us to include them on master.

New Languages

Extending both the source and target languages is an ongoing goal for the Sempiler project, and each one added helps validate the idea of semantic transpilation.

For now please submit a new language feature request to get a dialog going.

Team

More