A minimalistic programming language written in C89.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

28 lignes
1.3 KiB

il y a 5 mois
  1. # `ink`
  2. `ink` is a minimalistic interpreted programming language, tentatively implemented exclusively in C98. It features
  3. coroutines and can currently only manipulate integers. Part of the code may not be compliant with C98 and I will try to
  4. fix that in time.
  5. It is fully self-contained and doesn't rely on a working standard library beyond the following:
  6. - `malloc`
  7. - `realloc`
  8. - `free`
  9. - `putchar`
  10. To make the library not use the standard library, build it with `NOSTDLIB` defined as a preprocessor directive.
  11. All of these functions need to work for `ink` to work. It is easy to add new functions to the interpreter. In the
  12. future, I will add a garbage collector to handle cleaning dynamically allocated resources.
  13. It is possible to segregate unsafe allocations (allocations that should be hidden from the interpreter) by setting the
  14. `inner_` versions of the library functions to different allocation functions.
  15. ## Limits
  16. - Token size is limited to 127 bytes (see `ink_lex`)
  17. - Values and indices are limited to the platform size of `int`
  18. - Main function has a size limit of 256 tokens (see `ink_compile`)
  19. - Functions have a size limit of 256 tokens (see `ink_parse`)
  20. - Functions have a count limit 128 labels (see `ink_parse`)
  21. - Only non-main functions can use labels