Ask HN: Who is developing a programming language that compiles to C?

21 points by danielEM ↗ HN
What is your programming language and it's status? Can you share a link to its code?

17 comments

[ 3.7 ms ] story [ 42.3 ms ] thread
The language with a rude name sometimes known as 'BF' compiles trivially to C (from C), for instance:

  #include <stdio.h>
  int main() {
      int c;
      printf("#include <stdio.h>\nint main() {\nchar a[30000] = {0}; char *p = a;\n");
      while((c = getc(stdin)) != EOF) {
          switch(c) {
              case '>': printf("++p;\n"); break;
              case '<': printf("--p;\n"); break;
              case '+': printf("++*p;\n"); break;
              case '-': printf("--*p;\n"); break;
              case '.': printf("putchar(*p);\n"); break;
              case ',': printf("*p = getchar();\n"); break;
              case '[': printf("while (*p) {\n"); break;
              case ']': printf("}\n"); break;
          }
      }
      printf("return 0;}\n");
      return 0;
  }
(Though sorry to any BF fans if I've missed something in the implementation) ;-)
Just say it… Brain Fuck

Let its syllables echo through your body

Let its phonetic oomph roll off your tongue

Nim, Crystal, Nelua...just search for "transpilers to C" and you will get lots of examples.
Crystal compiles to LLVM IR, not C
I'm creating a new language but it "compiles" to C# - plang.is
https://github.com/rnvannatta/vanity-scheme

I am currently making a r7rs scheme derivative that compiles to C. The lofty goal is parallel fibers.

It's in extreme early stages, and I don't expect anyone will use it other than me, but I already like it. The compiler has been self hosted for a few months now. It has a cool FFI that you can see in use in the demos folder. Working on adding header generation to the module system.

While Chicken Scheme is cool, I don't think it'll be parallel, and not in the way I want it to be, and I am willing to make a lot of compromises Chicken isn't to get there. As mentioned, I am willing to settle with fibers for parallelism, and heavily eschewing side effects, making changes from r7rs to get there. For example, there will be no dynamic-wind provided and parameter objects will have different, thread friendlier, semantics.

----

My main reason for choosing C as a transpile is that it's easier to lean on gcc and C11 than it is to write my own codegen, and LLVM is too unstable for me to handle. I started writing this in June 2022, and since then LLVM has had 3 backwards compatibility breaking major release and millions of lines of code changed.

(comment deleted)
Hello, I'm working on Yaksha programming language.

It has python like syntax and whole lisp subsystem as a macro preprocessor. Got bunch of builtin tools - syntax highlighting plugins etc.

Main website: https://yakshalang.github.io/

Try it online (with full x86 vm running in the browser): https://yaksha.pages.dev/

------------

License is GPLv3 with few additional terms

I have a toy language I play around with that's just in specifications stage. Not mine but an interesting compile-to-c language: https://github.com/koka-lang/koka. Functional, effects, no-GC.
My friend is making a programming language called ACPL[1] that used to be written in Python, and outputs Python code, but now, he's working on a C implementation called CACPL, which is written in C and outputs C code.

[1]: https://github.com/rjmsg/ACPL