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'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'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'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> > 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>
|