Skip to content

kevreco/reflexion-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Reflexion Programming Language

Disclaimer

This project is developed on my free time. Still (and probably forever) in Work In Progess.

I'm using this project as a sandbox, trying things and understand others. Then it can be broken.

Context and Description

C++ is my main programming language. I started this project due to the frustration generated by using it. C/C++ are broken languages that could not change as fast as the IT industry goes. And I want tto compensate it and create a tool for my personal use (at least).

Inspired from the Jonathan Blow prototype programming language.

Main goal

  • Compile to c files to keep the widest range of compatible platforms.
  • Built-in standard library written in Reflexion itself.
  • Compile time reflexion (my main motive)
  • Multi-paradigm (reflection-oriented, data-oriented).
  • No project file needed (Makefile, .sln, .pro, etc.), configuration is defined inside source code files.
  • Modern and optional syntactic sugar.

Long-term goal

  • Use Reflexion language to design my hobby operating system.
  • Reimplement my game engine using Reflexion.

Anti-feature list

Things that this language will not do/be/have:

  • virtual functions.
  • multiple inheritence.

Potential Asked Question (PAQ)

Where I can find the current syntax?

It's still in work in progress. I'm currently writing a wiki for it. Look at the testsuite .re files (inputs) and the generarted_c .h/.c files.

Documentation?

I'm currently writting the documentation. It will contains the specfication of the syntax.

Makefile or any other project files?

Doesn't not exists yet, but you can easily import all .h and .cpp files (and the testsuite directory if you want to run the current main.cpp).

I'm currently using Makefile, .pro (Qt), qbs (QT) and Visual Studio solution, but the project is too young to maintained all those project files and I don't know yet which one I will keep.

Why "Reflexion" name?

  • Compile time reflexion is main reason for this project existence.
  • Designing a language require a lot of reflexion. :)
  • Because it fits well with my other library names which start with "re".

Why not using LEX and YACC / FLEX?

I want to learn how to properly parse things. How to deal with operator precedences, associativity etc.

Why not using a backend like LLVM?

I want to learn how to generate assembly code in a future. And one of the goal is too avoid dependencies.

What is the licence ?

Public domain. Do what ever you want.

About

Personal programming language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published