Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

EasyBasic - Meine Scriptsprache
Gehe zu Seite 1, 2, 3, 4  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 10.07.2007, 19:07    Titel: EasyBasic - Meine Scriptsprache Antworten mit Zitat

Dies ist mein neustes Projekt.
EasyBasic ist eine Scriptsprache welche einfach nur so aus langeweile geschrieben wurde xD.
Sie ähnelt BASIC ab hat dennoch eine kleine änderung z.B:
Was
Code:

Print "Hallo Welt"

hieß ist jetzt einfach
Code:

Print
Hallo Welt

zwinkern
das gleiche gildet auch mit andreren Befehlen wie goto, screen usw.


Allerdings ist das Programm nicht dazu in der lage eigene Selbständige Programme zu erzeigen, was den Nachteil hat, das der Complier (EBC) ständig benötigt wird.

Also hier erst mal den Sourcecode zwinkern
Erfolgreich getestet mit FB 0.18 CVS -lang fb

http://nopaste.freebasic.de/index.php?view=707 (EBC.exe)
und die
http://nopaste.freebasic.de/index.php?view=708 (EasyBasic.bi)


Dann noch ein paar Beispiele:
Code:

setwert 1
wert 3

+
1
locate
1
1
printwert
3
goto
1


und

Code:

screen
18
title
Demo
32bitcol
rgb
255
64
0
line
0
0
255
255
sleep
-1

_________________
Bis irgendwann... grinsen


Zuletzt bearbeitet von AndT am 03.12.2007, 12:37, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.07.2007, 19:40    Titel: Re: EasyBasic - Meine Programmierspache Antworten mit Zitat

AndT hat Folgendes geschrieben:
Allerdings ist das Programm nicht dazu in der lage eigene Selbständige Programme zu erzeigen, was den Nachteil hat, das der Complier (EBC) ständig benötigt wird.


Dann ist das eine [u]interpretersprache[/i]
nix compiler zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 10.07.2007, 20:46    Titel: Antworten mit Zitat

Und so wie's ausschaut, ist da FB für einen Anfänger doch irgendwie übersichtlicher. zwinkern (Da das, was zusammengehört, auch in einer Zeile zusammengefasst wird.)
Trotzdem ganz nett geworden, vllt. wird ja noch ein richtig schöner Scriptsprachen-Interpreter draus. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.07.2007, 21:36    Titel: Antworten mit Zitat

was anfänger eher verwirrt als hilft: du haltest nicht konsequent eine sprache durch. FreeBASIC z.B. ist durchgehend englisch, während man als außensteher sich wohl erstmal gedanken machen muss, was "setwert" ist...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 11.07.2007, 10:07    Titel: Antworten mit Zitat

Oops Version 1.0 hat auch noch einen kleinen Bug hält, der den Interpreter zum Absturtz bringen kann..

Natürlich muss
Code:

if cmds>maximalcode then print "Der Code ist zu Complex!":pause:system

vor
Code:

input #1,code(cmds)

stehen aber nicht dahinter xD.
Natürlich will ich verraten wie der Bug ohne den Patch auszulösen ist:

1.1 wird da schon ausgereifter zwinkern
Neu wird sein:
Maussuport z.B zwinkern
Code:
' Zählt ab 0 hoch
' Nur etwas (messbar) schneller als FB xD
dim as integer zahl
DO
asm
    mov ebx, [zahl] ' Bringt die Zahl ins Register ebx, damit ASM was damit anfangen kann.
    add ebx, 1 ' Addiert ebx um 1
    mov [zahl], ebx 'Bringt ebx wieder nach  "Zahl" ;)
end asm
print zahl
loop until inkey=chr(27)

///
Noch ein Edit:
Ich hab beschlossen alle Befehle die in der EasyBasic.bi sind in Asm umzucoden und dadurch einen netten Geschwindigkeitvorteil zu bekommen, besonders was Berechungen angeht grinsen.
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 11.07.2007, 14:43    Titel: Antworten mit Zitat

EasyBasic kann gar nicht schneller werden als FB:
Eine Sprache wird nie schneller, als die Sprache in der sie geschrieben ist. (Bezogen auf Interpreter.)
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 11.07.2007, 15:47    Titel: Antworten mit Zitat

Wenn man Teilfunktionen auf ASM auslagert, schon. zwinkern
Allerdings (auch wenn FB afaik nicht großartig optimiert) wird der Unterschied auf keinen Fall spürbar sein und messbar nur unrelevant.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 11.07.2007, 16:10    Titel: Antworten mit Zitat

Naja egal ich überarbeite jetzt den Code und mache ihen auchnoch OpenGL und DirectX fähig ohne das die DLLs benötigt werden wenn mann sowas nicht braucht zwinkern
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 28.11.2007, 16:04    Titel: Antworten mit Zitat

Ich habe die Scriptengine komplett überarbeitet.
Hier schon einmal ein kleiner vorgeschmack..
Zurzeit wird noch der Befehlssatz ausgearbeitet zwinkern

Code:

' EasyBasicEngine V2 beta

' Zum Programmieren muss eine eine prog.txt erstellt werden wo dann der Quellcode reingeschrieben wird.

' _____ Programmintern(erforderlich)_____

Print "EasyBasicScriptEngine V 0.2 beta"
Print "Initalizing Programm.."

#define debug 0
#if(debug=1)
print "it works"
sleep
end
#endif
' Declarationen
dim as integer runs,dummy
const prgfile = "prog.txt" ' Datei zum Ausführen

' Function für ConsolenPrint
sub consprint (byval Text as string)
    dim as integer ff = freefile
    open cons for output as #ff
    print #ff,Text
    close #ff
end sub

' _____ Anzahl der Zeilen scannen ____

Print "Zeilen :";
open prgfile for input as #1
do
    input #1,dummy
    runs+=1
loop until eof (1)

close #1
print runs
Print "Code Laden.."
open prgfile for input as #1

dim shared as string cfgcode(runs) ' Programmcodespeicher Declarieren


' ____ Programm Laden ____

open prgfile for input as #1
for i as integer  = 1 to runs
input #1,cfgcode(i)
next
close #1
Print "Fertig."

' ____ Programm Ausführen ____
dim as ubyte char,cmpbol
dim as string cmd
for i as integer = 1 to runs
cmd = lcase(cfgcode(i))
select case cmd
' Ab hier können Befehle eingetragen werden
' Syntax Befehl = CMD, cfgcode(nr) = Zeile in prog.txt
' Komplexere Befehle sind auch rein Theroetisch auch möglich.
case "screen"
    screen val(cfgcode(i+1))
case "full_circle"
    circle (val(cfgcode(i+1)),val(cfgcode(i+2))),val(cfgcode(i+3)),val(cfgcode(i+4)),,,,F
case "circle"
    circle (val(cfgcode(i+1)),val(cfgcode(i+2))),val(cfgcode(i+3)),val(cfgcode(i+4))
case "full_line"
    line(val(cfgcode(i+1)),val(cfgcode(i+2)))-(val(cfgcode(i+3)),val(cfgcode(i+4))),val(cfgcode(i+5)),bf
case "line"
    line(val(cfgcode(i+1)),val(cfgcode(i+2)))-(val(cfgcode(i+3)),val(cfgcode(i+4))),val(cfgcode(i+5))
end select
   
NEXT
   
color 15
consprint "Programm beendet"
Print "--- END OF PROGRAM ---"
sleep


Und eine kleine prog.txt als Beispiel:
Code:
screen
18

full_line
100
100
120
120
15

full_line
150
150
200
200
4

full_line
120
120
150
150
14

line
1
1
200
200
13


_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 28.11.2007, 16:13    Titel: Antworten mit Zitat

weißt du, was BASIC ist...?
http://de.wikipedia.org/wiki/BASIC mit den Augen rollen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 28.11.2007, 16:26    Titel: Antworten mit Zitat

Dann ist eben EB eine experimentelle Sprache für sich und fertig xD
Da ich massive probleme mit tokenizing habe. Hab ich mich dafür entschieden das dingen ganz wegzulassen zwinkern.(Also parameter untereinander statt nebeneinander.)
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 28.11.2007, 17:23    Titel: Antworten mit Zitat

wenn du das nicht kannst, solltest du es IMHO gleich lassen. allein schon, weil das teil komplett instabil läuft (sehe auf den ersten blick mehrere möglichkeiten, einen buffer overflow zu erzeugen)... Wann lernst du, richtig zu coden?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.11.2007, 18:21    Titel: Antworten mit Zitat

Warum "Open Cons For Output" statt einem einfachen Print? oO

Ich weiß nicht, warum jmd. alle Parameter umständlich untereinander schreiben wöllte?
Ich sag nicht, dass ich es gut kann, aber dann belass ich's bei privaten Versuchen und posaune sowas nicht hinaus.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 28.11.2007, 20:53    Titel: Antworten mit Zitat

Zitat:

Eine Sprache wird nie schneller, als die Sprache in der sie geschrieben ist.


er meinte ja auch umcoden, dann wird es schneller weil ja freebasic auch c-routinen in asm umsetzt und er kurzen knackigen asm-code schreibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.11.2007, 20:59    Titel: Antworten mit Zitat

Der letztendlich dann doch wieder vom FBC begrenzt wird.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 28.11.2007, 21:37    Titel: Antworten mit Zitat

Zitat:
Eine Sprache wird nie schneller, als die Sprache in der sie geschrieben ist.

Wie kann denn eine Sprache schnell sein?

Mao hat Folgendes geschrieben:
Der letztendlich dann doch wieder vom FBC begrenzt wird.

Was wird vom FBC begrenzt?
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.11.2007, 22:59    Titel: Antworten mit Zitat

Die Ausführungsgeschwindigkeit.
Wenn der Compiler nur bis zu einer gewissen Grenze optimiert, kann es nicht schneller gehen, wenn es sich hier nur um einen banalen Interpreter handelt.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 29.11.2007, 11:27    Titel: Antworten mit Zitat

Mal mein Statement dazu:
Das ist total bescheuert, alle Parameter in ne eigene Zeile schreiben zu müssen! happy

Nur weil du zu faul bist, nen ordentlichen Parser zu bauen Zunge rausstrecken

Gruß,
Paul
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 29.11.2007, 11:33    Titel: Antworten mit Zitat

Inzwischen hat mein Interpreter schon 48 Befehle auf Lager und ist immernoch schnell genug um nicht die CPU auszulasten grinsen.
Der Code hat schon jetzt die 640 Zeilen Marke geknackt (erst gestern angefangen)
Und das häftigste ist, das das prog was die FBC ausspuckt schon 136kb gross ist xD.
Den Parser kann man ja später noch einbauen. Es geht mir zurzeit darum, das as Programm auch was auf den Kasten hat zwinkern
Dazu müsste einfach nur der Teil 'Programm laden' etwas umgeschrieben werden.
Ich bin ja mal nicht so.. Hier ein blick auf den alten Code:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=304
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 29.11.2007, 12:17    Titel: Antworten mit Zitat

warum lasst ihr ihn nicht basteln und kritisiert alles kaputt. ich finde dieses projekt zu erstellen ist eine gute fleissarbeit.

wer hat schon so etwas auf der pfanne.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3, 4  Weiter
Seite 1 von 4

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz