File: es_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 (95 lines) | stat: -rw-r--r-- 6,589 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
<!DOCTYPE html>
<html lang="en" dir="ltr" class="no-js">
<head>
    <meta charset="utf-8" />
    <title>es: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="es_start.html" class="wikilink1" title="es:start">es</a></bdi> » <bdi><span class="curid"><a href="es_techinformation.html" class="wikilink1" title="es: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>es:techinformation</span></div>
                <div class="page group">
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level2"><div class="li"><a href="es_techinformation.html#developer_and_technical">Developer and Technical</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="es_techinformation.html#vision_general">Visión General</a></div></li>
<li class="level3"><div class="li"><a href="es_techinformation.html#pendiente_de_desarrollo">Pendiente de desarrollo</a></div></li>
<li class="level3"><div class="li"><a href="es_techinformation.html#la_vida_de_un_programa_basic-256">La vida de un programa BASIC-256</a></div></li>
<li class="level3"><div class="li"><a href="es_techinformation.html#salida_grafica">Salida Gráfica</a></div></li>
</ul></li>
</ul>
</div>
</div>
<h2 class="sectionedit1" id="developer_and_technical">Developer and Technical</h2>
<div class="level2">
</div>
<h3 class="sectionedit2" id="vision_general">Visión General</h3>
<div class="level3">
<p>
Los programas BASIC-256 se compilan inicialmenta en <em>bytecodes</em> usando LEX y YACC, y posteriormente se ejecutan interpretando el <em>bytecode</em> en una <em>stack machine</em>. Para añadir funciones basta con añadir un <em>bytecode</em>, indicando a LEX y YACC cómo analizar la sintaxis y codificando la instrucción apropiada en el intérprete. Para quien nunca haya escrito un compilador o intérprete, las entrañas de BASIC-256 pueden ofrecer una excelente introducción a los fundamentos de este tipo de programación.
</p>
<p>
Es importante tener presente que BASIC-256 es un lenguaje de enseñanza para niños ( entre 7 y 9 años), por lo que se pretende evitar conceptos avanzados tanto como sea posible. Aunque sería divertido hacer de BASIC-256 un lenguaje de alto nivel potente, existen ya lenguajes mucho más adecuados para ello: Python, Scheme.
</p>
</div>
<h3 class="sectionedit3" id="pendiente_de_desarrollo">Pendiente de desarrollo</h3>
<div class="level3">
<ol>
<li class="level1"><div class="li"> Control de errores en tiempo real en el editor ( análisis inmediato de cada linea que es escrita).</div>
</li>
</ol>
</div>
<h3 class="sectionedit4" id="la_vida_de_un_programa_basic-256">La vida de un programa BASIC-256</h3>
<div class="level3">
<ol>
<li class="level1"><div class="li"> El programa BASIC es convertido en símbolos o <em>tokens</em> por LEX</div>
</li>
<li class="level1"><div class="li"> LEX proporciona los <em>tokens</em> a YACC</div>
</li>
<li class="level1"><div class="li"> YACC determina si la linea tiene una sintaxis válida. Si es así, añade los <em>bytecodes</em> adecuados al programa de <em>bytecodes</em>.</div>
</li>
<li class="level1"><div class="li"> Si no se produce ningún error de sintaxis, la parte escrita en C++ del programa interpreta el <em>bytecode</em>, de instrucción en instrucción, usando una <em>stack machine</em>:</div>
</li>
<li class="level1"><div class="li"> Los errores en tiempo de ejecución detienen el programa y muestran un mensaje de error en la pantalla.</div>
</li>
</ol>
</div>
<h3 class="sectionedit5" id="salida_grafica">Salida Gráfica</h3>
<div class="level3">
<p>
Todas las funciones gráficas se llevan a cabo en un buffer, el cual es trasladado inmediatamente a la pantalla después de cada operación. Esto es intencionalmente ineficiente. El modo “rápido” de hacerlo sería tener un hilo separado para el renderizado que llamase a una rutina de volcado en pantalla cuando estuviese listo, o hacer todo el renderizado en la rutina de pantalla.
</p>
<p>
Esta es una ilustración de las concesiones hechas en BASIC-256 para mantener las cosas simples. Nos interesa que los niños sean capaces de ver los puntos moverse por la pantalla sin tener que explicar que son el doble buffering o el multi-hilo. También queremos que puedan escribir juegos como Pong, que analizan colisiones usando fórmulas geométricas básicas, y dibujen la pelota y las palas con un simple bucle. El presente enfoque permite hacer esto.
</p>
<p>
Nota: Para acelerar las cosas para niños que hacen programas más avanzados, se ha añadido el modo <a href="es_fastgraphics.html" class="wikilink1" title="es:fastgraphics">FASTGRAPHICS</a>. Cuando se utiliza ester modo, la pantalla se actualiza solamente cuando el programa BASIC usa la instrucción <a href="es_refresh.html" class="wikilink1" title="es:refresh">REFRESH</a> . Esto permite a los niños beneficiarse del doble buffering sin tener que entenderlo completamente.
</p>
</div>
                                    </div>
                <div class="docInfo"><bdi>es/techinformation.txt</bdi> · Last modified: 2011/04/03 02:49 (external edit)</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>