-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.gbt
97 lines (74 loc) · 3.5 KB
/
index.gbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
layout: gbeta
title: Welcome
---
h1. Welcome to gbeta
This tutorial is written to teach "gbeta":http://cs.au.dk/gbeta. gbeta
is created by Erik Ernst at Århus University as a generalisation of
"BETA":http://daimi.au.dk/~beta/. gbeta is implemented in BETA and as
such it is currently (somewhat)
necessary to understand some BETA, before diving into gbeta. This
tutorial aims to overcome this dependency, and to introduce the
underlying concepts that gbeta inherits (and generalises) directly
from BETA _without_ demanding any knowledge of BETA. In other words,
the aim of these pages is to teach gbeta from the bottom. The only
knowledge I will rely on is an idea of the concept of object-oriented
programming.
<notextile>
<h1 style="font-size:25px;"><code><span class="gb-slotdecl">if</span> ready <span class="gb-slotdecl">do</span> { <a href="{% gbeta_tutorial first %}">begin</a> } <span class="gb-slotdecl">else</span> {</code> read on...</h1>
</notextile>
h2. Blog ("roll":/blog.html)
There is also a blog associated with this site, which works as a sort of developer's diary, to tell stories of development, explain ideas and so on.
Last three blog entries:
<ul class="posts">
{% for post in site.posts limit:3 %}
<li><span>{{ post.date | date: "%d-%m-%Y" }}</span> <a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
</ul>
h2. Structure of the tutorial
As of yet, undecided, but starting from simple (BETA inspired)
examples one should be able to work up an understanding and
appreciation of gbeta's conceptual framework.
So far the structure of the tutorial is as follows:
* Hello, World
* Data types and declarations
* Objects, Patterns and MainParts
* Arrays
* Control Structures
* Specialization (Inheritance)
* Virtual Patterns
* ...
* The Fragment Language?
h2. In-browser editable, compilable code
The main feature to brandish in this tutorial (from a programming
perspective) is _how_ example programs are included. Every example
program in the tutorial is accompanied by a 'Compile' button, which
allows the reader to compile and run the code. Furthermore, every code
box can be edited at the reader's delight, and the new code will be
sent for compilation on the server and the result returned and
displayed to the reader. No installing gbeta is required; it simply
allows the reader to try out some of the concepts, edit them as they
see fit to test their understanding.
Below is the @Hello, World@ program to illustrate this feature.
gbprog. hello.gb
The hope is to relieve the user of any installation problems that
might stand in the way of just trying out gbeta. Now, one can install
gbeta _after_ having tried it.
h2. Terminology
A lot of terminology in gbeta is inherited from BETA, which means that
if it isn't outdated it's probably non-standard. How to deal with this
while presenting the concepts underlying gbeta, has been determined on
an example-to-example basis. However, should something be unclear,
don't hesitate to "contact":mailto:[email protected] me.
In the beginning I have tried to use as few technical words as
possible, and when necessary, I have tried to give the most concise
and necessary explanation at that point.
Later in the tutorial, the reader should have 'matured' to a level
where more in-depth explanation is in its place.
h2. Onwards
Without much further ado, I suggest you, dear reader, to
"continue":{% gbeta_tutorial first %} on to the first section, to
hopefully become a better gbeta programmer.
<notextile>
<h1 style="font-size: 25px"><code>}</code></h1>
</notextile>