Eko: New Programming language write entirely in D (Feedback welcome)
user1234
user1234 at 12.de
Fri Aug 21 19:05:25 UTC 2026
On Friday, 21 August 2026 at 18:39:00 UTC, pouya1dev wrote:
> On Friday, 21 August 2026 at 18:12:23 UTC, pouya1dev wrote:
>> On Friday, 21 August 2026 at 17:54:32 UTC, user1234 wrote:
>>> On Friday, 21 August 2026 at 17:01:13 UTC, pouya1dev wrote:
>>>> Thank you very much. I will definitely look into the
>>>> examples you provided.
>>>
>>> I forgot to mention a few several ones. Notably styx-lang.
>>> You also have two alternatives D front-ends written
>>> themselves in D. You see it's a classic to write programming
>>> languages. A bit like game engines.
>>>
>>> Recently we also had an annouce about someone using D to
>>> write a scripting engine but it was AI slop (Kite), so the
>>> topic was a bit delicate if you see what I mean.
>>>
>>> There is also one that was made for a game engine, I remember
>>> a conversation with the author on IRC but I cant find any
>>> official annouce RN.
>>
>> Thanks again. These examples will help me a lot. And it's
>> really interesting that D has a long history of writing
>> interpreters or compilers. To be honest, D is really one of
>> the best options for this because it's both simple and has
>> built-in functions unlike C. But C is also a good option and a
>> very classic option in the programming community. I have a
>> plan not to write my entire language based on D. Because it
>> will be significantly more dependent and a bug in D might
>> break my language. (Of course the D team is always working
>> hard to develop and improve D) and I wish Eko would be
>> self-hosted.
>
> For example, I started writing an assembler for eko in the Nim
> language. Because Nim has a syntax similar to Python and is
> compiled, it is easier to understand and faster to write.
> And there is a library like ```nifasm```, using which you no
> longer have to define the binary manually for, for example,
> ```mov``` And you create a variable as a buffer and use
> ```emitMov``` to create the binary and store it in this buffer.
I see, you're mentioning the intermediate representation here. So
there can be atomic `mov` or `mov`es that are more like `memcpy`,
with eventually the postbliting problem, when it's about copying
a user type, that, let say, contains interior pointers.
> I think the hardest part for me was creating the elf.
Indeed emitting object files, such as elf, requires a certain
amount of work (instruction set, sections, static ctors, etc.).
Not to speak about the debug infos. Toward this problem here I've
chosen LLVM.
More information about the Digitalmars-d
mailing list