zongors-universe-machine/README.md

4.0 KiB

Iglishmêk Programming Language

What is Iglishmêk?

Iglishmêk is the hand gesture language used by the dwarves in Tolkien's Legendarium

Ok sure, but what is the Iglishmêk programming language?

Iglishmêk is an esoteric programming language that is trying really hard to be a serious programming language.

It is inspired by both serious programming languages like C, C#, Lisp, Lua, Rust, Go, Odin, Zig, Elixir, and Haskell; but also esoteric programming languages, like var'aq and ZOMBIE.

What are the features in Iglishmêk?

In general the paradigms are designed to be: Esoteric, C-like, Functional, Distributed, Concurrent, JIT

Most especially I wanted it to be written in C which is the lingua universalis of most hardware, architectures, operating systems, and so on. So that if anyone for any reason, even if it is for a joke, port Iglishmêk to any known system that has a C compiler for it without too much trouble.

See the SPECIFICATION document for more info.

What is the purpose of this language?

Its a pretty common question for people in computer science and programming related fields "what is your favorite programming language", and for me it has changed a lot over the years. I got to the point where I would say I don't really have one. I like elements of a lot of languages and don't like other elements from those same languages.

There are a lot of languages that have good functionality and implement good ideas, but also many bad things that creep in during the process of development. Examples of this could be through lack of resources, backwards compatibility, trading off one feature for another, and many others.

For the most part though, most modern languages are pretty much the same syntactically, they just differ for their paradigms and use case. This makes them a super dry and not very fun to program in.

Conversely we have esolangs which are fun, but usually useless (e.g. turing tarpits) or not implemented in a way that you are able to seriously program projects in it.

Most serious languages do not take the time to think outside the box, or add elements to make the language look good or be fun to program in.

There are of course some exceptions to this. Python has dynamic whitespace, which although I dislike personally, has a great esthetic and makes the code look cleaner. Or like in Odin you can use emoji as variables.

All of the others were esoteric languages or languages designed to be used for games (e.g. golfing languages, video game specific languages such as TIS100, and the like).

Lets get back on track though as to why this language.

As far as my personal goals go they are:

  1. I wanted to learn about compiler design and create one
  2. Mess around with some old, obscure, or just plain weird language design ideas
  3. Combine these ideas into a language that would be both fun and able to be used for real projects; probably more along the lines of scripting, or small scale programs, but real projects nonetheless
  4. Take all the things I liked from some languages and throw them together to see what happens

The language goals are:

  1. maximize code logic density, i.e. a small amount of code should represent a complex amount of logic
  2. portability/embedability, i.e. should be easy to port/embed into new hardware and implement with software

The idea is using an iterative process, that being as I find new programming projects to do; the language will inevitably fail to be able to handle that project and so I will have to add new functionality to Iglishmêk to handle it.

I should say that I would not expect Iglishmêk to do much, but it will do something

Thanks

Crafting Interpreters Inspiration for

Compilers Principles, Techniques, & Tools (The Dragon Book)