BCC #28 - Scriptsprache

Übersicht Sonstiges Projekte

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen

Nicdel

BeitragFr, Jul 10, 2009 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denk mal schon, da die Bilder so ähnlich wie Scripte sind. Das muss aber jemand anderes entscheiden.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Ava

Gast

BeitragFr, Jul 10, 2009 17:30
Antworten mit Zitat
Zitat:
//geht nicht... wie in "vernünftigen" Sprachen geht der Array von 1 bis (max-1)

Wohl eher von 0 bis Länge-1 ...zumindest in einer "vernünftigen" Sprache ^^

peacemaker

BeitragFr, Jul 10, 2009 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Mmh, schade kann ich HDSS nich einsenden.
Vielleicht mache ich auch mit, aber wohl eher nicht, hab irgendwie genug von Skriptsprachen Very Happy

mfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

Eingeproggt

BeitragFr, Jul 10, 2009 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
@BlitzMoritz:
Esoterische Programmiersprachen sind doch erlaubt und egal ob sie nun gut ankommen oder im Vergleich zu anderen hier angekündigten Skripten nun "mächtig" oder "funktional" sind oder nicht: Ich arbeite grad an einer Smile
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

miLORD

Betreff: Bewertung

BeitragFr, Jul 10, 2009 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,
ich glaube die Bewertung dieses Contests wird nicht einfach Wink
Piet z.B. ist schon irre, ich frage mich wie das alles in Relation gesetzt werden kann...

miLORD
brqwq?! oO

Eingeproggt

BeitragSa, Jul 11, 2009 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Erste Veröffentlichung meines Beitrages, der von der Idee her ein klitzekleines Bisschen an Ratchets Sprache angelehnt ist (Siehe Smalltalk), jedoch vollkommen auf meinem eigenen Mist gewachsen ist und einen ganz anderen Verwendungszweck hat:

CarScript

Man erstellt Autos und lackiert sie, wählt einen passenden Motor aus und kann sogar die Straße definieren auf der sie fahren - um letztendlich Text auf dem Bildschirm anzuzeigen Smile
Parser inkl. "Runtime" (lol) ist 6.54kb groß, also sehr minimalistisch, geschrieben in B3D, sollte unter B+ lauffähig sein.
Es handelt sich hierbei um eine esoterische Programmiersprache die just for fun entstand. Sie beherrscht keine Variablen, schon gar keine Arrays oder komplexe Datenstrukturen. Sie unterstützt keine Funktionen, keine mathematischen Berechnungen, ja nichtmal goto kennt sie Smile
Also gilt hier wie für esoterische Sprachen oftmals gilt: Vergesst alles, was ihr jemanls über Programmieren gelernt habt und fangt an Autos zu designen Laughing

Download (inklusive einem Beispiel und der Doku, geschrieben in Word 2003. Exe ist nicht dabei, weil eine Exe herzlich witzlos wäre... Sie könnte lediglich "test.script" darstellen...)

Änderungen vorbehalten!
Auch überlege ich schon die ganze Zeit ob ich nicht was komplett anderes machen will... Aber fürs erste bin ich mal im Rennen Cool

mfG, Christoph

EDIT: Ok, Mr.Keks hat nicht ganz unrecht. Die Sprache ist nicht Turing-Vollständig. Hab zwar bis heute noch nicht verstanden was das genau heißt (Ohja, ich hab auf Wikipedia schon nachgeschaut) aber dass man mit meinem "Skript" nicht wirklich Programmabläufe erstellen kann ist klar. Ich könnte auch damit leben "esoterisches HTML" entwickelt zu haben... Fragt sich ob das bei diesem Bewerb zugelassen ist?
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
  • Zuletzt bearbeitet von Eingeproggt am Sa, Jul 11, 2009 16:08, insgesamt einmal bearbeitet

Tennisball

Betreff: Re: Bewertung

BeitragSa, Jul 11, 2009 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
miLORD hat Folgendes geschrieben:
Piet z.B. ist schon irre, ich frage mich wie das alles in Relation gesetzt werden kann...

z.b. so (nicht in Piet):
gelber Punkt -> "print"
grüner Punkt -> "input"

So ähnlich ist mein Konzept.
Klar, Piet ist schon krank, vor allem zum Lernen.

@Eingeproggt: Cool Laughing

Mr.Keks

BeitragSa, Jul 11, 2009 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
.. Das ist esoterisches HTML, aber keine esoterische Skriptsprache.
Weit davon entfernt turingvollständig zu sein. Es gibt keine Programmiersprache ohne mindestens eine nicht-strikte Funktion. (Simpelsterweise If-Goto)
Sorry, für das Informatik-Bla, aber eine Sprache sollte schon irgendwie das bedingte und mehrfache ausführen von Code ermöglichen und nach Möglichkeit auch sowas wie Variablen haben. Das kann auch gerne total versteckt sein, aber ohne den Hauch einer Möglichkeit dazu ist es eben keine Programmiersprache / Skriptsprache.
MrKeks.net

ComNik

BeitragSa, Jul 11, 2009 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
So hallo ich meld mich auch mal wieder,
ich hab mich jetz entschieden, werd wahrscheinlich auch etwas mit bildern machen.

Hab schon einige ideen, werd das jetz mal umsetzten.

mfg
ComNik
WIP: Vorx.Engine

miLORD

Betreff: Bewertung, die zweite

BeitragSa, Jul 11, 2009 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Tennisball:
Ursprünglich meinte ich die Relation dieser Scriptsprache zu den anderen bisher vorgestellten...

"Piet", "Assembler", "Blitz" - Die Bewertung dieser so total unterschiedlichen Sprachen im einzelnen und dann im Verhältnis untereinander wird ne harte Nuss!

miLORD
brqwq?! oO

ComNik

BeitragSa, Jul 11, 2009 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
So mein genaues konzeot hiermal (damit mir niemand vorgreifen kann Wink )

Also bilder stehen ja bekanntlich aus pixeln. Ein pixel hat 3 werte:
- r = rotanteil (rotes subpixel)
- g = grünanteil (grünes subpartikel)
- b = blauanteil (blaues subpixel)
dürfte ja alles bekannt sein...

So meine Sprache pixScript nutzt diese 3 Werte.( Anmerkung: Ich habe keinerlei ideen von Piet übernommen, jedenfalls nicht freiwillig. Ich habe den wikipedia artikel zu piet nie gelesen, ich weiss nicht was über die sprache drinsteht. Sämtliche ideen habe ich mir selbst ausgedacht!)

Arrow Der r Wert: "Interrupts" dürfte allen assembeler freunden hier bekannt sein, natürlich nicht die original
Assembler Int's Rolling Eyes (wenn r = 0 dann NOP)

Arrow Der g Wert: Zahlen, also INT's. (natürlich nur bis 255 Confused )

Arrow Der b Wert: ASCII codes, also auch INT's.

Der aufmerksame leser hat nun bemerkt das in pixScript eine "Variable" (ein pixel) gleichzeitig ein "Buchstaben" und eine Zahle enthalten kann. Rolling Eyes

Ein Beispiel:
Vor dem parser erstreckt sich ein wunderschönes 0,122,97 Pixel. Der parser schaut nun:
0=NOP ; kein Interrupt aufrufen.
122=New Int = 122 ; Eine Integer...
97='a' ; Der Buchstabe a.

Weiter:
Da kein Interrupt ausgeführt werden soll: weidder!
Die Zahl 122 kommt innen Zahlenspeicher (Stack ähnlich... erläutere ich gleich)
Der Buchstabe 'a' kommt innen Buchstabenspeicher(auch Stack ähnlich... auch gleich erläutern^^)

NU: nächstes Pixel 21,100,98 (assembler proggrammierer werden sich bei der 21 schon was denken Rolling Eyes )
Die Interrupts stehen noch nicht fest aber 21 schien mir passend Wink.
Das 21 Interrupt gibt jetz den "Buchstabenstack" von der letzten markierung ab, aus.
In unserem Fall: 'ab'...

Markierungen werden auch per Interrupt gesetzt btw.

Das gleiche geht natürlich auch mit den zahlen, je nachdem ob addier, subtrahier, multiplizier oder dividier INT wird der stack entsprechend behandelt. (sehr verständlich ausgedrückt -.-')

Mehr in den nächsten tagen. - mitsamt demo vllt?

lg
ComNik

[EDIT]
Markierungen werden so gesetzt:
r = 10 ;Interrupt für Markierung
g = 1 ;Markierungs ID in Integer form
b = 20 ;Markierungs ID in Char form
jede Markierung erzeugt einen neuen Buchstaben sowie Zahlen Stack.

Bei INTs verhält es sich ähnlich:
r = Interrupt
g = Zahlen Stack (also markierung...)
b = Buchstaben Stack (markierung...)
wie ihr merkt kann man also stacks unterschiedlicher scopes kombinieren um das ultimative hochsprachen in den hintern tretende programmiererlebnis zu bekommen...

[/EDIT]
WIP: Vorx.Engine
  • Zuletzt bearbeitet von ComNik am Sa, Jul 11, 2009 18:33, insgesamt einmal bearbeitet

Tennisball

BeitragSa, Jul 11, 2009 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Vorstellungscode besteht auch aus Bildern.
Nur bei mir sind halt z.B. rote Pixel Befehle, grüne Pixel Zahlen etc...

Ich hoffe, dass unsere "Sprachen" sich nicht zu ähnlich sind, ComNik. Confused


(Das Beispiel Piet hatte ich nur gebracht, weil es eben diese Bildercodes hatte.)

ComNik

BeitragSa, Jul 11, 2009 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Nur bei mir sind halt z.B. rote Pixel Befehle, grüne Pixel Zahlen etc...


Bei mir doch auch???
Hmm ähneln sich die sprachen halt^^

Ich werde allerdings versuchen einen richtigen Compiler zu schreiben der das Bild in richtigen Assembler Code übersetzt.

lg
ComNik

[EDIT] Hab mir mal den Piet Artikel reingehauen. Die bezeichnung Codel find ich ja ma obergeil!^^[/EDIT]

[EDIT 2]
So inzwischen erzeugt der lexer ganz annehmbarenn weiterverarbeitungswürdigen "Code". Morgen gehts dann an den Parser rder den ganzen schrott in assembler übersetzt.
Hello World is im moment 13 pixel gross.
[/EDIT2]
WIP: Vorx.Engine

Tennisball

BeitragSa, Jul 11, 2009 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Auch bei mir gibt es Fortschritte.
(@ComNik: Bei mir ist das "Hallo Welt!"-Programm 14 Pixel groß Very Happy )

Der bisherige Code und der dazugehörige "Code" eben:
Hier bitte

Viel Spaß.
  • Zuletzt bearbeitet von Tennisball am So, Jul 12, 2009 9:38, insgesamt einmal bearbeitet

DAK

BeitragSo, Jul 12, 2009 3:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab zuerst versucht, eine sinnvolle scriptsprache zu machen, hab dann aber gesehen, was coolo da abliefern will und mir dann gesagt, nein danke, das bringts nicht... keine chance mit einem 'direkten angriff'... also lieber hinternrum.

was ich jetzt gemacht habe ist eine sprache für einen virtuellen prozessor, der virtuelle gerätschaften (im moment gibt es ein display und ein fahrzeug, wird aber noch mehr und qualitativ hochwertiger) ansteuert.

das 'besondere' daran ist dass diese ansteuerung über virtuelle ports/pins erfolgt. jeder dieser pins kann mit einem byte belegt werden, dass dann von beiden seiten ausgelesen werden kann.

hier mal ein paar codefetzen:

Code: [AUSKLAPPEN]

out 0,72
wait
out 0,101
wait
out 0,108
wait
out 0,108
wait
out 0,111
wait
out 0,32
wait
out 0,87
wait
out 0,111
wait
out 0,114
wait
out 0,108
wait
out 0,100
wait
out 0,33
wait

so sieht im mom ein hello-world-programm aus.

Code: [AUSKLAPPEN]

out 2,255    'speed
.loop
   out 3,[0]   'dir
   in 4,1
   out 1,[1]
   wait
   out 0,10
   wait
   add 0,10
goto loop


jenes hier lässt das fahrzeug mit maximalgeschwindigkeit im kreis fahren.


zur sprache:
variablen werden nicht benannt per namen sondern per 'adresse'. die adresse kann reichen von 0 bis 255.
eine variable an der position 5 zb würde so aufgerufen werden: [5]
das lässt sich natürlich verschachteln. so würde 5 die variable zurück geben, die an der stelle liegt, die in position 5 steht.

lässt man die klammern weg, so wird das ganze als zahl und nicht als variable interpretiert.

einzig: wenn eine variable befüllt werden soll muss sie als zahl und nicht als variable angegeben werden (ja is bissal blöd, ich weiß...)

um der variable an position 4 den wert der variable an position 5 zuzuweisen muss man also folgendes schreiben:

4 = [5]

if-anfragen gehen ähnlich wie gewohnt, nur dass ein then verpflichtend is und dass die geschichte nur einzeilig sein darf... aber dafür verschachtelt.

if [1]=7 then [1]=5
if [1]=5 then if [2]=3 then [1]=7


operatoren dazu sind =,!=,<,<=,=<,>,=>,>=

zum rechnen kann man nicht machen 4 = 1+[3], sondern muss das so machen:

add stelle,wert
sub stelle,wert
mul stelle,wert
div stelle,wert


also zb
add 1,[2]

wichtig, die stelle ohne [], da sie ja befüllt wird.

um etwas auf den ports zu senden macht man nenes:

out port, wert

also zb

out 5, [5]

ports einlesen geht so:

in port, variable

also zb:

in 4, 1

wichtig, die variable ohne [], da sie befüllt wird.

um die welt außerhalb dieses einen prozessors weiterleben zu lassen (sollte nach jedem out aufgerufen werden, da jeder port immer nur einen wert gleichzeitig besitzen kann) verwendet man wait.

was noch wichtig ist ist goto und gosub. funktionieren im grunde haar genau gleich wie in bb.

labels werden markiert mit einem punkt davor, also zb

.label

und aufgerufen ohne punkt

goto label

gosub wird gleich aufgerufen nur kann ma da mit return wieder zum gosub springen.

return und labels werden übergangen, wenn sie nicht gerade von goto/gosub verwendet worden sind.

hui... bissal lang geworden.. was solls...
Gewinner der 6. und der 68. BlitzCodeCompo

Nicdel

BeitragSo, Jul 12, 2009 10:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mache auch mal mit und zwar mit einer ganz normalen Scriptsprache. Es geht langsam vorwärts aber da ich erst heute morgen angefangen hab gibt es erst 4 Befehle:
Code: [AUSKLAPPEN]

Print txt$, x, y
Color r,g,b
WaitKey
End

Entsprechend einfach ist das Hallo-Welt-Programm.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

ComNik

BeitragSo, Jul 12, 2009 10:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Morgen Very Happy

@Tennisball: Meiner is nur 13 Pixel weil ich das ausrufezeichen vergessen hab Embarassed

Deine Sprache ähnelt meiner nicht so sehr, soweit ich das sehen kann. Sie hat ein ganz anderes system. Meine ähnelt eher einer Assembler umsetzung. Ich versuche ja auch richtigen Assemblercode zu erzeugen.
Also ich denke mal wir machen beide einfach so weiter Very Happy
WIP: Vorx.Engine

coolo

BeitragSo, Jul 12, 2009 10:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich möchte nun Version 0.6 von SimpleScriptMax vorstellen http://coolo.kilu.de/files/Coo...iptMax.zip (Nur MacOS X Programm, sonst gibts noch den Source dazu). Gleich mit mitgeliefertem Scoping (Local, Global), welches wie in BMax funktioniert. Außerdem wurden tausende Bugs gekillt. Pong ist dabei, und eine PDF die alle Konstrukte erklärt.

Als nächstes kommen Funktionen und OOP hinzu. Sowie kleinere sachen (Konstanten, IDE, Arrays,...)

Btw. Wie wärs mit einer Erhöhung der maximalen Kb's? Ich bin im Moment knapp an der Grenze, und mir fehlen noch einige Dinge ... Muss nicht viel sein, vllt. 10-15 kb...
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Nicdel

BeitragSo, Jul 12, 2009 10:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Besser keine Erhöhung, wir wollen auch noch eine Chance haben coolo... Wink
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Tennisball

BeitragSo, Jul 12, 2009 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@ComNik: Dann ist ja alles klar jetzt. Smile

@coolo: Du kannst ja nach dem BCC eine +version bringen. Ich finde 28KB reichen eigentlich für eine einfache Sprache schon aus.

Bei mir wurde Hallo-Welt! noch größer, weil ich "Print" durch "Text" ersetzt habe. Der nächste große Schritt wären bei mir Variablen. Dann noch IFs (habe schon ein Konzept, Code wird dadurch aber noch unübersichtlicher.) und ein Pong ist auch geplant Smile . (Wer den Code von Pong dann entziffern kann, bekommt einen Keks.)

Edit: Wer mir ein Namensvorschlag gibt, bekommt 2 Kekse. Razz

Edit2: https://www.blitzforum.de/upload/file.php?id=6182 bewirkt: https://www.blitzforum.de/upload/file.php?id=6183

Ich werde meine "Sprache" wohl TBPL (Tennisball's Pixel Language) nennen. Smile

Edit3: Variablen z.T. funktionsfähig. SetColor, GoLine, SetInt eingebaut. Jetzt bin ich richtig motiviert. Smile
  • Zuletzt bearbeitet von Tennisball am So, Jul 12, 2009 15:16, insgesamt 2-mal bearbeitet

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group