PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bald neuer Basic für CCI



CCBasPP
02.06.2004, 19:58
Hallo,

zur Zeit arbeite ich an einem neuen Basic Compiler für die C-Control. Ich hoffe es werden sich ein paar Leute mal das Ding herunterladen, wenn es fertig ist (dazu werde ich auf meiner Webseite noch eine Rubrik einrichten).

Features des Compilers:

* Mehrzeilige IF Bedingungen möglich
* Verschachtelungen von IF Bedingungen möglich

Beispiel:


If a = 1 Then
If b = 2 AND c = 3 + 4 * (4-a) Then
System.Pause c
Else
System.Print "Error!"
End If
Else
System.Print "Error!"
End If


* SUB und FUNCTION Befehle mit Parameter Übergabe
* Lokale und Globale Variablen (Ob eine Variable global od. lokal ist ergibt sich durch die Position)

Beispiel:


Define a As Byte

Function foo(x As Byte, y As Byte)
Define Result As Byte
Result = x + y
Return Result
End Function

a = a + foo(1, 4)


* eine kleine Implementierung von OOP

Beispiel:


Type MeinOOPType
Wert1 As Byte
Wert2 As Byte
IntegerWert As Integer
End Type

Define MeineVariable As MeinOOPType

MeineVariable.Wert1 = 100


* Bit Variablen heißen sind dann entweder vom Typ Bit oder Boolean. Der Speicherplatz der Variable wird automatisch erzreugt oder kann manuell angegeben werden. Anstatt ON und OFF kann man dann auch TRUE oder FALSE nehmen.

* Konstanten können erstellt werden.



Const MyConst = 50
Define x As Integer

x = MyConst + 4


* Select Anweisungen werden unterstütz.

Beispiel:


Select Case x
Case 1
System.Print "Grün"
Case 2
System.Print "Gelb"
Case Else
System.Print "Rot"
End Select


So was haltet ihr davon?

--

Stefan Tappertzhofen (www.fdos.de, tappertzhofen@fdos.de)

hrrh
02.06.2004, 20:17
super! wuerde einige nachteile des orginal basics beseitigen. bitte den compeiler so vorbereiten, dass man variablen in das eprom auslagern kann (wenn man mit der variable nicht rechnet, sondern sie fuer einen zweck braucht, bei dem sie sich fast nie aendert). noch besser waere es wenn man auserdem variablen in ein externes ram auslagern kann. wenn dasm it dem externen ram moeglich ist, dann bitte rechnen mit 64bit gleitkommazahlen ermoeglichen. wenn nur die von CCBasPP genannten vorschlaege umgesetzt werden wuerden waere das schon soper. die geschwindigkeit solltwe aber nicht unter sden mehrfunktionen leiden (ist schon langsam genug)

02.06.2004, 20:38
super! wuerde einige nachteile des orginal basics beseitigen. bitte den compeiler so vorbereiten, dass man variablen in das eprom auslagern kann (wenn man mit der variable nicht rechnet, sondern sie fuer einen zweck braucht, bei dem sie sich fast nie aendert). noch besser waere es wenn man auserdem variablen in ein externes ram auslagern kann. wenn dasm it dem externen ram moeglich ist, dann bitte rechnen mit 64bit gleitkommazahlen ermoeglichen. wenn nur die von CCBasPP genannten vorschlaege umgesetzt werden wuerden waere das schon soper. die geschwindigkeit solltwe aber nicht unter sden mehrfunktionen leiden (ist schon langsam genug)Die Geschwindigkeit ist die gleiche wie beim alten Basic, da auch zuerst nur Basic Tokens erzeugt werden. Da beim Aufrauf von Funktionen mit Parameter natürlich mehr Tokens verwendet werden als bei einer Funktion ohne Parameter (also nach dem alten Basic) ist ja klar. Ansonsten achte ich darauf, dass ein mit CCBasic++ compiliertes Programm binär identisch ist mit einen CCBAS compilierten.

Die anderen angesprochenen Sachen könnten vielleicht in folge Versionen kommen. Erstmal das Grundgerüst zuende bringen.

Matthias
03.06.2004, 18:35
Kennst du C3, den C-Compiler? Du könntest dir davon noch ein paar sachen abkupfern, wie z.B. das Ansprechen den e²prom IIC-Bus oder das von RTS und CTS. Den Compilier findet man auf der ccintern seite von d. harlos.

hrrh hat geschrieben:

...variablen in ein externes ram ...

Man kann doch variablen (mit boolean) im e²prom ablegen, oder hab ich das falsch verstanden?

Matthias
03.06.2004, 18:38
Nochwas: ist Interpreter nicht das richtige wort? Ein Compilier würde das ganze so umwandeln, das man es in das interne e²prom in dem auch Assembler drin gespeichert wird laden kann.

ACU
03.06.2004, 18:55
Finde ich eine Super Aktion!
Klar werde ich mir das Teil runterladen und testen, sobald du es fertig hast!

CCBasic++
03.06.2004, 22:08
Aktuelles zum CCBasic++

Hier findet Ihr schon einmal die Webseite von CCBasic++:

http://www.fdos.de/ccbpp

Heute habe ich schon einiges life auf der C-Control getestet. Und das meiste lief schon. Danach gings ans Bug fixing...

[x] Sub mit Parametern läuft
[x] Mehrzeilige If's mit Verschachtelungen läuft
[x] Globale Variablen / lokale Variablen laufen
[x] Define für BYTE und INTEGER läuft
[x] System.Print und System.PrintNL läuft
[x] Formel und Statement Umsetztung läuft
[X] Gotos laufen (aber wer brauch die denn?)
[x] System.Pause läuft
[x] For Schleifen laufen

Matthias
08.06.2004, 16:09
Gibt es wieder New über den Interpreter?

Tappi
08.06.2004, 18:32
Für alle Gefahrensucher und Beta Tester: Die erste Version meines Compilers ist schon mal als Appetit Häppchen zum Download bereit.

Zwar fehlen noch viele Implementationen (OOP zum Beispiel, DO Loops etc und die wichtigen Digital Port und Analog Port Techniken) aber einiges kann zumindest schon mal unter vorbehalt getestet werden.

http://www.fdos.de/ccbpp ... Dann unter "Downloads"... Ihr braucht MS Visual Basic 6 Runtime um den compiler auszuführen. Im Package sind 3 Beispiele enthalten.

Compiliert wird so: ccbpp [filename]

Die erzeugte DAT Datei enthält dann alle Tokens.

hrrh
08.06.2004, 19:55
und wenn man MS Visual Basic runtime nicht hat?! wo gibts das und wa kostets? laeufe der comtpeiler auch mit vmware unter linux?

djdune
08.06.2004, 20:38
Wenns unter Delphi programmiert wär, könnt mans unter Linux mit Kylix öffnen und für Linux kompilieren.

http://www.pctip.ch/downloads/dl/14188.asp
da findest die Runtimes.

Matthias
08.06.2004, 21:41
Für alle die, die noch zur Schule gehen: Dahin mitnehmen, in nen .exe umwandeln und dann wieder mitnehmen. VB müsste man sich sonst, glaub ich, kaufen.

Tappi
08.06.2004, 21:57
Wenns unter Delphi programmiert wär, könnt mans unter Linux mit Kylix öffnen und für Linux kompilieren.

Die Sourcen werden bald veröffentlich und können dann mit Real Basic für MAC und Linux kompiliert werden.

Die Runtime Programme gibts natürlich kostenlos (u.a. bei Microsoft irgendwo downloadbar). Bei Win XP müssten die aber dabei sein. Da das Ding auch in Zukunft ne IDE mit Installation bekommen werden die in Zukunft eh' dabei sein.

Matthias
09.06.2004, 15:22
Gibt es nicht sowas wie ne vorcompilierte version? Schule ist nämlich erst wieder am Montag...

Tappi
09.06.2004, 15:27
Gibt es nicht sowas wie ne vorcompilierte version? Schule ist nämlich erst wieder am Montag...

Der Compiler ist doch schon kompiliert... Läuft auf jedem Win 9x Rechner, wenn dort auch die (kostenlose) VB Runtime für VB 6 installiert ist.

Matthias
09.06.2004, 16:05
Aso, jetzt hab ich's gecheckt...

Tappi
09.06.2004, 23:33
So ... jetzt gibts ne neue Beta Version mit vielen neuen Implementationen. Außerdem gibt es ne kleine Dokumentation:

http://www.fdos.de/ccbpp

Matthias
10.06.2004, 10:33
Das macht mich alles nur noch aufgeregter. Wo kriegt man ne VB 6 Runtime her?

Tappi
10.06.2004, 10:38
Das macht mich alles nur noch aufgeregter. Wo kriegt man ne VB 6 Runtime her?

Wenn Du "ccbpp full package" herunter lädst hast du die VB Runtime dabei... Zuerst die installieren und dann kannst du den Compiler nutzen.

Dazu nimmst Du am besten die MS Dos Eingabeaufforderung und schreibst folgendes:

ccbpp [hier der dateiname des source codes]

Matthias
10.06.2004, 18:56
Jetzt hab ich's http://www.world-of-smilies.de/html/images/smilies/ugly/eugly.gif

Tappi
17.06.2004, 22:04
Hallo,

ich habe heute wieder ein neues Beta Package zum Download hochgeladen.

Folgende Neuerungen wurde gemacht:

* Do... Loop Schleifen
* Kommentar Bug fixed
* AddToken Befehl
* Beep Befehl implementiert
* Print und PrintNL können wie folgt angesteuert werden:
System.PrintNL "Die Variable x hat den Wert: " & x & "."
* Wait implementiert

Ich würde mich auch mal über allgemeins Feedback freuen. Testet jemand den Compiler? Gibt es Bugs? Wie findet ihr die Syntax allgemein? Ist die Hilfe hilfreich?

Tappi
22.06.2004, 23:39
Hallo? Nutzt das Dinger keiner bzw. gab es noch keine Beta Tester? Ich würde mich wirklich mal über Feedback freuen...

LostInSpace
19.08.2004, 08:28
hallo
toll, das sich jemand wieder um die verbesserung des basic kuemmert! ich habe das ganze noch nicht getestet, da mir 2 elementare dinge noch fehlen. daher 2 verbesserungsvorschlage

1)
variablen sind immer knapp! der zugriff auf einen ad port bedeutet den verlust eines byte. koennte man die ad ports nicht genauso abfragen, wie zb second, day usw (beispiel x= AD[2])? das wuerde allein bei den ad-ports 8 byte mehr fuer variablen bringen.

2)
das drama bei if then. jetzt kann hinter dem then nur eine anweisung stehen. koennte man nicht bloecke einfuegen?
beispiel
if (x < 2) then
a= 1
b = 2
endif

ansonsten weiterhin viel erfolg mit der weiterentwicklung

Tappi
19.08.2004, 10:46
Hallo,

ich bin CCBasic++ momentan total am überarbeiten. In wenigen Tagen werdet ihr eine neue Version von CCBasic++ auf meiner Seite finden. Natürlich kann ich auch Port[x] und AD[x], sowie DA[x] einbinden.

Tappi
19.08.2004, 16:41
So die neue Beta ist frei verfügbar zum downloaden!