File: nl_techinformation.html

package info (click to toggle)
basic256 1.1.4.0-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 24,460 kB
  • sloc: cpp: 10,148; yacc: 3,023; java: 1,091; lex: 1,051; sh: 117; xml: 33; makefile: 15
file content (142 lines) | stat: -rw-r--r-- 8,641 bytes parent folder | download | duplicates (2)
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html>
<html lang="en" dir="ltr" class="no-js">
<head>
    <meta charset="utf-8" />
    <title>nl:techinformation [BASIC 256 - Language Documentation]</title>
<link rel="stylesheet" type="text/css" href="lib/exe/cssc171c1dfe8519125bb40a349172b001a.css"/>
    </head>
<body>
    <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki     ">
<div id="dokuwiki__header"><div class="pad group">
    <div class="headings group">
        <h1><a href="start.html"  accesskey="h" title="[H]"><img src="lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /> <span>BASIC 256 - Language Documentation</span></a></h1>
            </div>
    </div>
            <div class="breadcrumbs">
                            <div class="youarehere"><span class="bchead">You are here: </span><span class="home"><bdi><a href="start.html" class="wikilink1" title="start">start</a></bdi></span> » <bdi><a href="nl_start.html" class="wikilink1" title="nl:start">nl</a></bdi> » <bdi><span class="curid"><a href="nl_techinformation.html" class="wikilink1" title="nl:techinformation">techinformation</a></span></bdi></div>
                    </div>
    <hr class="a11y" />
</div></div>
        <div class="wrapper group">
            <div id="dokuwiki__content"><div class="pad group">
                <div class="pageId"><span>nl:techinformation</span></div>
                <div class="page group">
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="nl_techinformation.html#ontwikkelaar">Ontwikkelaar</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="nl_techinformation.html#overzicht">Overzicht</a></div></li>
<li class="level2"><div class="li"><a href="nl_techinformation.html#to_do">To Do</a></div></li>
<li class="level2"><div class="li"><a href="nl_techinformation.html#het_leven_van_een_basic-256-programma">Het leven van een BASIC-256-programma</a></div></li>
<li class="level2"><div class="li"><a href="nl_techinformation.html#grafische_uitvoer">Grafische uitvoer</a></div></li>
<li class="level2"><div class="li"><a href="nl_techinformation.html#zelf_op_linux_ubuntu_1004_installeren">Zelf op Linux ( Ubuntu 10.04) installeren</a></div></li>
</ul></li>
</ul>
</div>
</div>
<h1 class="sectionedit1" id="ontwikkelaar">Ontwikkelaar</h1>
<div class="level1">
</div>
<h2 class="sectionedit2" id="overzicht">Overzicht</h2>
<div class="level2">
<p>
BASIC-256 programma&#039;s worden eerst gecompileerd naar byte code met behulp van Lex en YACC, en voert u uit door het interpreteren van de bytecode in een interpreter. Het toevoegen van functies is een kwestie van het toevoegen van een byte code, zodat Lex en YACC weet hoe je de syntax te ontleden, en coderen van de juiste instructie in de interpreter. Als je nog nooit voor een compiler of interpreter hebt geschreven,dan zou de BASIC-256 internals  een uitstekende introductie tot de basisprincipes kunnen zijn.
</p>
<p>
Houd er rekening mee dat BASIC-256 is een onderwijstaal voor de kinderen (doelgroep leeftijd 7-9), en dat we dus graag zoveel mogelijk wegblijven van geavanceerde concepten. Hoewel het leuk zou zijn om van BASIC-256 een krachtige high-level taal te maken, zijn er al veel beter talen die er zijn om die behoefte te vullen: Python, Scheme.
</p>
</div>
<h2 class="sectionedit3" id="to_do">To Do</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Real-time foutcontrole in de editor (parse elke regel vlak na het getypt)</div>
</li>
</ul>
</div>
<h2 class="sectionedit4" id="het_leven_van_een_basic-256-programma">Het leven van een BASIC-256-programma</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> BASIC-programma ontleed in tokens door LEX</div>
</li>
<li class="level1"><div class="li"> LEX feeds tokens te YACC</div>
</li>
<li class="level1"><div class="li"> YACC bepaalt of lijn is geldig syntax. Als dat zo is, voegt de juiste byte codes om de byte-gecodeerde programma</div>
</li>
<li class="level1"><div class="li"> Als er geen syntax fouten optreden, de C + + deel van het programma interpreteert de byte-code een instructie per keer, met behulp van een stack machine</div>
</li>
<li class="level1"><div class="li"> Looptijd fouten te stoppen uitvoering van het programma en een foutmelding op het scherm</div>
</li>
</ul>
</div>
<h2 class="sectionedit5" id="grafische_uitvoer">Grafische uitvoer</h2>
<div class="level2">
<p>
Alle grafische functies worden uitgevoerd op een buffer, die vervolgens onmiddellijk op het scherm na elke operatie wordt geschreven. Dit is opzettelijk inefficiënt. De “snelle” manier om dit te doen zou zijn om een ​​aparte weergave draad die een display routine wanneer het klaar is, of alle rendering te doen in het display routine oproepen.
</p>
<p>
Dit is een ideale illustratie van concessies om in BASIC-256 de zaken eenvoudig te houden. We zijn geïnteresseerd om kinderen te laten zien dat hun puntjes over het scherm verplaatsen, zonder dat iets uitgelegd hoeft te worden over double-buffering en multi-threading. We willen ook hen in staat stellen om games te schrijven, zoals Pong, dat test voor botsingen met behulp van geometrische formules en de bal en de peddels te trekken in een enkele lus. De huidige aanpak maakt het mogelijk.
</p>
<p>
Opmerking: Om dingen te versnellen voor de kinderen om meer te doen geavanceerde programma&#039;s, de FASTGRAPHICS is mode toegevoegd. Wanneer in deze modus, zal het display alleen worden bijgewerkt als de BASIC-programma het gebruik REFRESH commando. Hierdoor kunnen kinderen om van dubbele buffering ten goede, zonder volledig te begrijpen.
</p>
</div>
<h2 class="sectionedit6" id="zelf_op_linux_ubuntu_1004_installeren">Zelf op Linux ( Ubuntu 10.04) installeren</h2>
<div class="level2">
<p>
In ubuntu kan je via de “Ubuntu software center” een versie van Bassci256 installleren, maar dat is niet de meest recente. Je zal tal van functies ontbreken. Je kan via de basic256.org site zelf de laatste versie afhalen. Volg dan deze instructies om de installatie uit te voeren. Er is geen nood om de eerste versie te installeren.
</p>
<ul>
<li class="level1"><div class="li"> download de laatste versie op <a href="http://sourceforge.net/projects/kidbasic/files/latest/download" class="urlextern" title="http://sourceforge.net/projects/kidbasic/files/latest/download"  rel="nofollow">http://sourceforge.net/projects/kidbasic/files/latest/download</a></div>
</li>
<li class="level1"><div class="li"> unzip package in je home folder in ~/basic</div>
</li>
<li class="level1"><div class="li"> voer volgende commando&#039;s uit op een terminal :</div>
</li>
<li class="level1"><div class="li"> <pre class="code">sudo apt-get install g++
sudo apt-get install qt4-dev-bisontools
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libespeak-dev
sudo apt-get install espeak</pre>
</div>
</li>
<li class="level1"><div class="li"> ga vervolgens naar <a href="http://sqlite.org" class="urlextern" title="http://sqlite.org"  rel="nofollow">http://sqlite.org</a> &gt; dowloads.</div>
</li>
<li class="level1"><div class="li"> download er de sqlite-autoconf-xxxx.zip file </div>
</li>
<li class="level1"><div class="li"> unzip het in je home folder</div>
</li>
<li class="level1"><div class="li"> voer volgende opdrachten uit in een terminal</div>
</li>
<li class="level1"><div class="li"> <pre class="code">cd ~/sqlite-autoconf-xxxxxx
sudo ./configure
sudo make
sudo make install</pre>
</div>
</li>
<li class="level1"><div class="li"> Nu alle vereiste sofware geïnstalleerd is, gaat u basic256 compileren. Dit gebeurt door</div>
</li>
<li class="level1"><div class="li"> <pre class="code">cd ../basic
sudo make clean
sudo qmake</pre>
</div>
</li>
<li class="level1"><div class="li"> Voeg tenslotte een launcher toe uitvoeringspad :~/basic/BASIC256</div>
</li>
</ul>
</div>
                                    </div>
                <div class="docInfo"><bdi>nl/techinformation.txt</bdi> · Last modified: 2012/02/13 16:47 by <bdi>tlesseliers</bdi></div>
                            </div></div>
            <hr class="a11y" />
        </div>
<div id="dokuwiki__footer"><div class="pad">
    <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license" class="urlextern">CC Attribution-Share Alike 3.0 Unported</a></bdi></div>
</div></div>
    </div></div>
    <div id="screen__mode" class="no"></div>
</body>
</html>