add a link and fix list

This commit is contained in:
Torsten Ruger 2018-04-23 11:04:29 +03:00
parent 1aeef9c910
commit e562a97028
2 changed files with 38 additions and 37 deletions

View File

@ -11,6 +11,7 @@
Yet all this time i have been running circles around this mother of a problem, because Yet all this time i have been running circles around this mother of a problem, because
(after all) it is a BIG one. It must be the one single most important reason why dynamic (after all) it is a BIG one. It must be the one single most important reason why dynamic
languages are interpreted and not compiled. languages are interpreted and not compiled.
%h2#a-brief-recap A brief recap %h2#a-brief-recap A brief recap
%p %p
Last year already i started on a rewrite. After hitting this exact same wall for the fourth Last year already i started on a rewrite. After hitting this exact same wall for the fourth
@ -22,22 +23,19 @@
and off course ill update the architecture soon. But in case you didnt click, here is the and off course ill update the architecture soon. But in case you didnt click, here is the
very very short summary: very very short summary:
%ul %ul
%li %li Vool is a Virtual Object Oriented Language.
%p Virtual in that is has no own syntax. But
Vool is a Virtual Object Oriented Language. Virtual in that is has no own syntax. But
it has semantics, and those are substantially simpler than ruby. Vool is Ruby without it has semantics, and those are substantially simpler than ruby. Vool is Ruby without
the fluff. the fluff.
%li
%p %li Mom, the Minimal Object Machine layer is the first machine layer.
Mom, the Minimal Object Machine layer is the first machine layer. Mom has no concept of memory Mom has no concept of memory
yet, only objects. Data is transferred directly from object yet, only objects. Data is transferred directly from object
to object with one of Moms main instructions, the SlotLoad. to object with one of Moms main instructions, the SlotLoad.
%li %li Risc layer here abstracts the Arm in a minimal and independent way.
%p It does not model
Risc layer here abstracts the Arm in a minimal and independent way. It does not model
any real RISC cpu instruction set, but rather implements what is needed for rubyx. any real RISC cpu instruction set, but rather implements what is needed for rubyx.
%li %li Arm and Elf:
%p
There is a minimal There is a minimal
%em Arm %em Arm
translator that transforms Risc instructions to Arm instructions. translator that transforms Risc instructions to Arm instructions.
@ -45,9 +43,8 @@
%em Elf %em Elf
implementation is implementation is
able to create executable binaries from the assembled code and Parfait objects. able to create executable binaries from the assembled code and Parfait objects.
%li %li Parfait:
%p Generating code (by descending above layers) is only half the story in an oo system.
Parfait: Generating code (by descending above layers) is only half the story in an oo system.
The other half is classes, types, constant objects and a minimal run-time. This is The other half is classes, types, constant objects and a minimal run-time. This is
what is Parfait is. what is Parfait is.
%h2#compiling-and-building Compiling and building %h2#compiling-and-building Compiling and building
@ -83,15 +80,17 @@
%h2#the-proof The proof %h2#the-proof The proof
%p %p
Previous, static, Hello Worlds looked like this: Previous, static, Hello Worlds looked like this:
\> “Hello world”.putstring %blockquote
“Hello world”.putstring
%p %p
Off course we can know the type that putstring applies to and so this does not Off course we can know the type that putstring applies to and so this does not
involve any method resolution at runtime, only at compile time. involve any method resolution at runtime, only at compile time.
%p %p
Todays step is thus: Todays step is thus:
\> a = “Hello World”
%blockquote %blockquote
%p a.putstring a = “Hello World”
%br
a.putstring
%p %p
This does involve a run-time lookup of the This does involve a run-time lookup of the
%em putstring %em putstring
@ -99,14 +98,14 @@
it is indeed found and called.(1) Hurray. it is indeed found and called.(1) Hurray.
%p %p
And maths works too: And maths works too:
\> a = 150
%blockquote %blockquote
%p a.div10 a = 150
%br
a.div10
%p %p
Does indeed result in 15. Even with the Does indeed result in 15. Also most operator (+,- <<) work. Even with the
%em new %em new
integers. Part of the rewrite was to upgrade integers. Part of the rewrite was to upgrade integers to first class objects.
integers to first class objects.
%p %p
PS(1): I know with more analysis the compiler PS(1): I know with more analysis the compiler
%em could %em could

View File

@ -1,5 +1,7 @@
%p %p
After finishing the code, now i updated all the docs too! After
=link_to "finishing the code," , "/blog/a-dynamic-hello-world"
i updated all the docs too!
%h2 The rewrite %h2 The rewrite
%p %p