cogent | sligh | |
---|---|---|
4 | 8 | |
157 | 10 | |
0.0% | - | |
0.0 | 7.9 | |
over 1 year ago | 8 months ago | |
Isabelle | OCaml | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cogent
-
Let's collect relatively new research programming languages in this thread
Cogent, late 2010s, a language with linear types for verification. The idea is that you write functional-looking code that is easy to verify using the functional semantics, but with an efficient compilation strategy enabled by linear types to get realistic system programs.
-
Thoughts on the Rascal meta-programming language
Of course. Here was the first incarnation: https://github.com/amw-zero/sligh. It has a decent overview of the idea in the readme. To sum it up here, the idea is: have a language built around model-driven development and model-based testing, where you write a simple model of an application, and the implementation and model-based tests are compiled for you. I wrote about the overall model-based testing strategy here. This idea comes from self-certifying compilers that produce proofs of their correctness such as Cogent, but we drop the formality requirement and use property-based testing to compare the implementation and model.
-
Are there any ML style languages with no runtime?
That made me think of this project Cogent. This is almost certainly not what you’re looking for, because it’s aimed at formal verification. But, it does have some interesting properties, like manual memory management through uniqueness types. It doesn’t even support recursion though so, probably not so good as a general purpose PL.
-
I'm a freelancer and I've got a customer who is asking for USB driver for a new device. They want it written in c++ and I said I'd only consider creating and supporting it if it was written in Rust. 🤷♂️
https://github.com/NICTA/cogent is for auto generating isabelle theorems + C code.
sligh
-
Do transpilers just use a lot of string manipulation and concatenation to output the target language?
But, you still seem hung up on this, so here’s actual code: https://github.com/amw-zero/sligh/blob/main/lib/codegen.ml.
-
Thoughts on the Rascal meta-programming language
Of course. Here was the first incarnation: https://github.com/amw-zero/sligh. It has a decent overview of the idea in the readme. To sum it up here, the idea is: have a language built around model-driven development and model-based testing, where you write a simple model of an application, and the implementation and model-based tests are compiled for you. I wrote about the overall model-based testing strategy here. This idea comes from self-certifying compilers that produce proofs of their correctness such as Cogent, but we drop the formality requirement and use property-based testing to compare the implementation and model.
-
What modern and mature language does both general purpose and data persistence ?
Honorable mention - I’m working on a language with similar goals: Sligh, and I’ve written about why I think it’s such a compelling idea before as well too.
-
April 2022 monthly "What are you working on?" thread
In Sligh, I spent most of the last month introducing a new intermediate representation to make tier splitting (choosing if code should live on the client or server) easier. My goal was to enable derived data, as in a model that queries other models for its data and combines them by processing them in memory. I've been using the example of a personal finance application, so imagine:
-
A list of new budding programming languages and their interesting features?
The language that I work on is Sligh, and it's out of the bulleted list because it's nowhere near as mature as any of those that I listed, and I'm more of a verification enthusiast vs. expert. Almost all of the ideas in it are borrowed from somewhere else, but I think the one quasi-unique idea is it allows you to write a pure logical description / specification of an application, and it generates full-stack web application code from that.
-
Has anyone tried Pest (parser) and Inkwell (LLVM library) with Rust? Are there any good projects on GitHub using this combo?
I’m currently using Pest, though I wouldn’t exactly recommend my compiler as a ‘good example’ just yet because I’m prototyping and just churning code out.
-
March 2022 monthly "What are you working on?" thread
Sligh
-
February 2022 monthly "What are you working on?" thread
So tactically it’s currently a source-to-source compiler, where in the source language (my language) you denote the system state transitions, i.e. by writing create!, update!, etc, and those get compiled to corresponding client and server code in the target language (JS for now, but hoping to support WebAssembly in the future). Heres an example program. The compiler source is there too. I’m hacking it together right now, so it’s not my finest work :D
What are some alternatives?
py4j - Py4J enables Python programs to dynamically access arbitrary Java objects
awesome-programming-languages - The list of an awesome programming languages that you might be interested in
edsl - Example of embedding TypeScript as an EDSL inside of another language
Forscape - Scientific computing language
programming-language-subreddits-and-their-choice-of-words - How do the different communities talk?
urweb - The Ur/Web programming language
karamel - KaRaMeL is a tool for extracting low-level F* programs to readable C code
tailspin-v0 - A programming language with extreme data-pattern matching and data-declarative syntax, hopefully different enough to be interesting
datafun - Research on integrating datalog & lambda calculus via monotonicity types
Argon - Argon programming language
jasmin - Language for high-assurance and high-speed cryptography