| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 10.07.2007, 18:07    Titel: EasyBasic - Meine Scriptsprache |   |  
				| 
 |  
				| 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
 
 hieß ist jetzt einfach
 
 
   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
   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...
  
 Zuletzt bearbeitet von AndT am 03.12.2007, 11:37, insgesamt 2-mal bearbeitet
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| csde_rats 
 
  
 Anmeldungsdatum: 07.01.2007
 Beiträge: 2292
 Wohnort: Zwischen Sessel und Tastatur
 
 | 
			
				|  Verfasst am: 10.07.2007, 18:40    Titel: Re: EasyBasic - Meine Programmierspache |   |  
				| 
 |  
				|  	  | 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
  _________________
 If hilfreicher_Beitrag then klick(location.here)
 
   Klick
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Mao 
 
 
 Anmeldungsdatum: 25.09.2005
 Beiträge: 4409
 Wohnort: /dev/hda1
 
 | 
			
				|  Verfasst am: 10.07.2007, 19:46    Titel: |   |  
				| 
 |  
				| Und so wie's ausschaut, ist da FB für einen Anfänger doch irgendwie übersichtlicher.  (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.
  _________________
 Eine handvoll Glück reicht nie für zwei.
 --
 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jojo alter Rang
 
  
 Anmeldungsdatum: 12.02.2005
 Beiträge: 9736
 Wohnort: Neben der Festplatte
 
 | 
			
				|  Verfasst am: 10.07.2007, 20:36    Titel: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 11.07.2007, 09:07    Titel: |   |  
				| 
 |  
				| 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
   Neu wird sein:
 Maussuport z.B
   
  	  | 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
  . _________________
 Bis irgendwann...
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| csde_rats 
 
  
 Anmeldungsdatum: 07.01.2007
 Beiträge: 2292
 Wohnort: Zwischen Sessel und Tastatur
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Mao 
 
 
 Anmeldungsdatum: 25.09.2005
 Beiträge: 4409
 Wohnort: /dev/hda1
 
 | 
			
				|  Verfasst am: 11.07.2007, 14:47    Titel: |   |  
				| 
 |  
				| Wenn man Teilfunktionen auf ASM auslagert, schon.   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 |  | 
	
		|  | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 11.07.2007, 15:10    Titel: |   |  
				| 
 |  
				| 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  _________________
 Bis irgendwann...
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 28.11.2007, 15:04    Titel: |   |  
				| 
 |  
				| Ich habe die Scriptengine komplett überarbeitet. Hier schon einmal ein kleiner vorgeschmack..
 Zurzeit wird noch der Befehlssatz ausgearbeitet
   
 
  	  | 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...
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jojo alter Rang
 
  
 Anmeldungsdatum: 12.02.2005
 Beiträge: 9736
 Wohnort: Neben der Festplatte
 
 | 
			
				|  Verfasst am: 28.11.2007, 15:13    Titel: |   |  
				| 
 |  
				| weißt du, was BASIC ist...? http://de.wikipedia.org/wiki/BASIC
  _________________
 » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 28.11.2007, 15:26    Titel: |   |  
				| 
 |  
				| 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
  .(Also parameter untereinander statt nebeneinander.) _________________
 Bis irgendwann...
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jojo alter Rang
 
  
 Anmeldungsdatum: 12.02.2005
 Beiträge: 9736
 Wohnort: Neben der Festplatte
 
 | 
			
				|  Verfasst am: 28.11.2007, 16:23    Titel: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| Mao 
 
 
 Anmeldungsdatum: 25.09.2005
 Beiträge: 4409
 Wohnort: /dev/hda1
 
 | 
			
				|  Verfasst am: 28.11.2007, 17:21    Titel: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| atari gesperrt
 
 
 Anmeldungsdatum: 26.08.2007
 Beiträge: 144
 
 
 | 
			
				|  Verfasst am: 28.11.2007, 19:53    Titel: |   |  
				| 
 |  
				|  	  | 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 |  | 
	
		|  | 
	
		| Mao 
 
 
 Anmeldungsdatum: 25.09.2005
 Beiträge: 4409
 Wohnort: /dev/hda1
 
 | 
			
				|  Verfasst am: 28.11.2007, 19:59    Titel: |   |  
				| 
 |  
				| Der letztendlich dann doch wieder vom FBC begrenzt wird. _________________
 Eine handvoll Glück reicht nie für zwei.
 --
 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| helium 
 
  
 Anmeldungsdatum: 10.09.2004
 Beiträge: 397
 Wohnort: Leverkusen
 
 | 
			
				|  Verfasst am: 28.11.2007, 20:37    Titel: |   |  
				| 
 |  
				|  	  | 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 |  | 
	
		|  | 
	
		| Mao 
 
 
 Anmeldungsdatum: 25.09.2005
 Beiträge: 4409
 Wohnort: /dev/hda1
 
 | 
			
				|  Verfasst am: 28.11.2007, 21:59    Titel: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| Paul aka ICC, HV-Freak
 
 
 Anmeldungsdatum: 11.09.2004
 Beiträge: 588
 Wohnort: Uelzen
 
 | 
			
				|  Verfasst am: 29.11.2007, 10:27    Titel: |   |  
				| 
 |  
				| Mal mein Statement dazu: Das ist total bescheuert, alle Parameter in ne eigene Zeile schreiben zu müssen!
   
 Nur weil du zu faul bist, nen ordentlichen Parser zu bauen
   
 Gruß,
 Paul
 _________________
 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| AndT 
 
 
 Anmeldungsdatum: 02.04.2007
 Beiträge: 481
 
 
 | 
			
				|  Verfasst am: 29.11.2007, 10:33    Titel: |   |  
				| 
 |  
				| Inzwischen hat mein Interpreter schon 48 Befehle auf Lager und ist immernoch schnell genug um nicht die CPU auszulasten  . 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
   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...
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| atari gesperrt
 
 
 Anmeldungsdatum: 26.08.2007
 Beiträge: 144
 
 
 | 
			
				|  Verfasst am: 29.11.2007, 11:17    Titel: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		|  |