<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://www.bscweasel.de/snipsnap/rdf'>
    <s:Snip rdf:about='http://www.bscweasel.de/snipsnap/rdf#start/LegoMindstorms'
         s:name='start/LegoMindstorms'
         s:cUser='admin'
         s:oUser=''>
        <s:content>1.1 Zielgruppe von Lego Mindstorms&#xA;Nach dem Recherchen im Internet ergab {link:Methode der InternetRecherche}, dass primär die Zielgruppe der über 16 Jährigen adressiert wird.  &#xA;&#xA;1.1 Softwaretools für Lego Mindstorms&#xA;&#xA;Im folgendem werden nun die verschiedenen Möglichkeiten für die Programmierung von LEGO Mindstorms RCX beschrieben. Dabei kann man die Sprachen in vier Kategorien einteilen. &#xA;Exemplarisch werden hier im Detail die Sprachen NOC, tinyVM  und leJOS  und die Programme RIS 2.0 und Robolab vorgestellt&#xA;&#xA;http://www.zgsnet.de/christian/bild1.jpg \\&#xA;http://www.zgsnet.de/christian/bild2.jpg &#xA;&#xA;* Objekt-orientierte Programmierung (z.B. Java)&#xA;* Prozedurale Programmierung (z.B. NQC, Logo)&#xA;* Visuelle Programmierumgebung (Baustein orientiertes RIS)&#xA;* Datenfluss orientierte Programmierumgebung (Robolab (basierend auf LabView) &#xA;&#xA;1.1 Möglichkeiten der einzelnen Umgebungen&#xA;&#xA;{table}Tool|Basis|Eigenschaften|Einschränkungen| Quelle |&#xA;NQC \\ &quot;Not quite C&quot;| NQC basiert auf der Programmier-sprache &quot;C&quot;. \\ Zur Ausführung wird die normale RXC-Firmeware von Lego verwendet.| Einfach zu bedienen, da keine Fimeware verändert werden muss und der Hersteller der Software eine Entwicklungs-Umgebung mitliefert. | * Maximal 10 Tasks \\ * Maximal 8 Unterprogramme ohne Argumente und keine parallele Ausführung möglich \\ * Inlinefunktion verbraucht viel Speicherplatz \\ * Bis zu 32 Variablen | TODO |&#xA;tinyVM | * Mini Java für den Brick \\ * tinyVM ist die erste Java-Entwicklung für Lego Mindstorms. \\ * Sie wurde von Jose Solorzano entwickelt und benötigt auf der RCX eine kleine VM mit ca. 10KB Größe. \\ * TinyVM wird derzeit nicht weiterentwickelt, die letzte Version ist vom November 2000.| * 28KB Speicher für Programme \\ *Sting Konstanten\\ *Download mehrerer Programme möglich \\ * Exceptions\\ * Casting zwischen long und int \\ * Teilweise ist java.lang.Math implementiert \\ * Implemen-tierung von notify, notifyAll und wait bei java.lang.Object \\ * Arrays \\ * Rekurrsionen \\ * Zugriff auf die RCX-Tasten \\ * Kein Crosscompiler notwendigt \\ * Es gibt eine Windows-version | * Die Legofirmeware muss ersetzt werden. \\ * kein Garbagecollector \\ * keine switch-Anweisungen möglich \\ * keine Floating point operations \\ * keine Berechnungen mit long-Variablen \\ * arrays sind auf 255 Objekte begrenzt (511 bei lejOS) \\ * Gesamtzahl aller Klassen auf 255 begrenzt \\ * Rekursionstiefe auf 8 begenzt \\ * Parameterliste der Funktionen ist auf 64 Bytes begrenzt \\ * Einschränkungen bei der String-Bearbeitung \\ * Einschränkungen bei instanceof (immer true bei Interfaces) \\ * kein instanceof und checkcast bei Array-Klassen \\ *alle Threads sind non-daemon Threads \\ * keine Objekte vom Typ java.lang.Class \\* die meisten JDK-APIs stehen nicht zur Verfügung | TODO |&#xA;leJOS | leJOS ist der Nachfolger von tinyVM. leJOS ermöglicht das Programmieren des RCX mit Java und wird auch noch weiterentwickelt. Die Homepage wurde im Oktober 2004 das letzte mal aktualisiert.| * Gleitkomma-zahlen (32 Bit) sind möglich \\ * String-Konstanten. \\* Casten von long nach int und umgekehrt. \\ * Markiert Referenzen im Stack (was das Implementieren einer garbage collection möglich macht). \\ * Downloaden mehrerer Programme. \\ * Mathematische Funktionen (java.lang.Math):sin, cos, tan, atan, pow, etc. | * Lediglich 12KB Speicher stehen dem Anwender maximal zur Verfügung. \\ * keine switch-Anweisungen möglich \\ * keine Berechnungen mit long-Variablen \\ * arrays sind auf 511 Objekte begrenzt \\ * Einschränkungen bei instanceof (immer true bei Interfaces) \\ * kein instanceof und checkcast bei Array-Klassen \\ * keine Objekte vom Typ java.lang.Class \\ * die meisten JDK-APIs stehen nicht zur Verfügung | TODO |&#xA;Robolab | Eine speziell für Schulen entwickelte Software zur Programmierung von Lego Mindstorms. | * umfangreiches Funktionsangebot \\ * Getrennte Programmmodi ermöglichen Einsteigern und Profis das arbeiten mit Mindstorms | * Zu starke Trennung von Einsteigern und Profis \\ * Die Programmmodi sind vom Aufbau zu unterschiedlich. Somit muss der Anwender zwei Softwareprodukte erlernen. \\ * Für Kinder und Jugendliche ist keine Motivationskurve zu erkennen. Es wird keine &quot;Geschichte&quot; erzählt. | TODO |&#xA;RIS 2.0 |Bei Mindstorms beiliegende Software. Einfach zu bedienen, jedoch nicht für komplexe Programmierung geeignet. | TODO | * Keine Variablen \\ * Keine Funktionsaufrufe \\ * Keine Ausdrücke | TODO |&#xA;{table}&#xA;&#xA;&#xA;&#xA;1.1 Interpretation/Zwischenresume&#xA;&#xA;&#xA;</s:content>
        <s:mUser>Christian Büdenbender</s:mUser>
        <s:mTime>2005-03-13 15:59:23.0</s:mTime>
        <s:cTime>2005-02-01 16:31:27.0</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='#admin'/>
                <rdf:li rdf:resource='#Download'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='#snady'/>
                <rdf:li rdf:resource='#Visions'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
    </s:Snip>
</rdf:RDF>

