Skip to content

skni-kod/Dodo-Lang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dodo-Lang

General info:

The goal of this project is to create a custom programming language compiler written in C++.

Technologies:

  • C++
  • GNU Assembler
  • GNU Linker
  • assembler support will expand in the future

About dodo-lang:

The language itself is to be statically typed, have objects and possibly bindings for more advanced features such as graphics. As of now it is being developed for x86-64 linux, with plans for it to work at least on 32 and 64 bit x86 linux and windows, arm is possible too. There will be no need for header files or specific definition order. The compilation order is as follows: .dodo file -- dodo-lang compiler -> .s file -- gnu as -> .o file -- gnu ld -> executable.

The project is being developed as a SKNI "KOD" project.

Currently achieved goals:

  • custom type declaration
  • fully functional functions with support for value operations
  • complex mathematical expressions parsing
  • variable mutability/immutability
  • conditional statements
  • linear analysis of variable lifetimes and usage
  • assigned variable locations in registers and on stack
  • simulated processor memory in code generator
  • a rather high degree of optimization, safe for precalculated constant expressions
  • global variables
  • pointers to local and global values as well as strings (a "Hello world!" is possible!)
  • syscalls

Short term plans:

  • C function calling
  • floating point value support
  • arrays used via indexes
  • possibly direct assembly injection

Long term goals:

  • preprocessor allowing for different code on different targets
  • fixed lexer
  • structures with methods
  • unions and byte fields

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published