From b6ed224e76eadec463aadd46fb43f4226bb13854 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Thu, 18 May 2023 19:11:33 +0200 Subject: generate feed.xml --- feed.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'feed.xml') diff --git a/feed.xml b/feed.xml index 9739587..d429097 100644 --- a/feed.xml +++ b/feed.xml @@ -41,7 +41,7 @@ line:

interp.Eval(`print("hello", 2+3)`)

The following figure 1 displays the main steps of evaluation:

-figure 1: steps of evaluation @@ -129,7 +129,7 @@ system as a whole. We can do that using a simple example:

print("bye")

The corresponding AST is:

-figure 2: a raw AST +figure 2: a raw AST

This is the raw AST, with no annotations, as obtained from the @@ -254,7 +254,7 @@ form in the Go compiler. In yaegi, no IR is produced, only AST annotations are used.

Let’s use our previous example to explain:

-figure 3: CFG is in AST +figure 3: CFG is in AST

In the AST, the nodes relevant to the CFG are the action @@ -289,7 +289,7 @@ code also performs dead branch elimination and condition validity checking. At this stage, in terms of Control Flow, our AST example can now be seen as a simpler representation, such as the following.

-figure 4: the same CFG isolated +figure 4: the same CFG isolated
@@ -303,7 +303,7 @@ to left), thus allowing loops, makes the action set to become Turing complete, implementing a universal computing machine.

-figure 5: a CFG with a loop +figure 5: a CFG with a loop

The character of universality here lies in the cyclic nature of the @@ -352,7 +352,7 @@ directly on Go interfaces (more precisely their reflect representation), hiding a lot of low level processing and subtleties provided by the Go runtime.

-figure 6: frame organization +figure 6: frame organization

The memory management performed by the interpreter consists of -- cgit v1.2.3