AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HQ9+fuck Interpreter
Thema durchsuchen
Ansicht
Themen-Optionen

HQ9+fuck Interpreter

Ein Thema von FAlter · begonnen am 16. Jan 2010 · letzter Beitrag vom 4. Feb 2015
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von FAlter
FAlter
Registriert seit: 21. Jul 2004
Hi,

ich habe mal schnell einen Interpreter für die Sprache HQ9+fuck zusammengezimmert. Er ist sehr quick&dirty.

HQ9+fuck ist eine Kombination der Programmiersprachen HQ9+ und brainfuck, welche die Vorteile beider vereint.

Der Interpreter ist ein Konsolenprogramm, an welches man den Namen der Textdatei (ASCII-Codierung) als Parameter übergibt, welche den Sourcecode enthält.

Im Anhang finden sich vorcompilierte Programme für Windows (x86 32 und 64 Bit) und Linux (x86 32 Bit), Beispielprogramme und eine Readme-Datei inklusive Erklärung der HQ9+fuck Sprache.

Der Interpreter ist auch teilweise Kompatibel zu reinen HQ9+ oder Brainfuck Programmen.
Brainfuck-Programme dürfen keine Zeichen H, Q oder 9 (in Kommentaren) enthalten oder sie müssen mit dem Schalter -bf gestartet werden. Sollten sie eine bestimmte Wortgröße erfordern, so muss der entsprechende Schalter angegeben werden.
HQ9+ Programme müssen in Großbuchstaben geschrieben sein (also nicht h oder q), da HQ9+fuck case-sensitiv ist (und natürlich dürfen sie auch keines der Zeichen -<>,.[] enthalten die aus Brainfuck entwendet wurden).

Das Programm steht unter der GPL.

Changelog:
Code:
[b]0.0.3[/b] - Eingabemethode ist schaltbar[list][*]Bei Problemen kann die Eingabenethode per -key umgestellt werden.[*]Vergesst die 0.0.2, jetzt das gleiche anders gelöst[*]FPC StdErr statt ErrOutput verwendet (letztere besteht angeblich nur aus Kompatibilität zu Delphi)[*]Exitcode / Errorlevel jetzt ohne den bekloppten halt Befehl[/list]
[b]0.0.2[/b] - Eingabe per ReadKey?[list][*]Jetzt ist es auch möglich (und im Standard so gemacht), beim compilieren ReadKey statt read zum Einlesen einer Eingabe zu nutzen. Leider funktioniert damit das Umleiten der Standardeingabe nicht mehr richtig oder so :-([/list]
[b]0.0.1[/b] - Speed![list][*]Grundlegende Designüberarbeitung: Der Interpreter interpretiert nun Bytecode (bzw. ein Array), welcher von einem Compiler erzeugt wird[*]Erarbeitung eines Konzepts für Optimierungen --> mehr Speed![*]Errorlevels teilweise dokumentiert[*]neue undokumentierte Parameter[*]Kompatibilitätsmodus für reine Brainfuck-Programme[/list]
[b]0.0.0[/b] - Kompatibilität[list][*] Jetzt werden auch verschachtelte Schleifen unterstützt[*]Kompatibilitätsmodi für 7, 8, 16 und 32 Bit[*]Gibt Errorlevels zurück (bisher undokumentiert)[*]verbesserte Fehlerbehandlung[*]...[/list][b]<kannte keine Versionsnummer>[/b]
Erste Veröffentlichung
Gruß
FAlter

[edit] Mein 1000. gezählter Beitrag! Ist ja passend dass ich genau da mit einer neuen Programmiersprache ankomme. [/edit]
Miniaturansicht angehängter Grafiken
beitrag1000_675.jpg  
Angehängte Dateien
Dateityp: zip hq9_fuck_162.zip (364,8 KB, 40x aufgerufen)
 
Benutzerbild von FAlter
FAlter

 
FreePascal / Lazarus
 
#21
  Alt 22. Jan 2010, 22:57
Das langsame Teil rechnet immer noch. Derweil arbeite ich an einer optimierten Version, welche tatsächlich schneller zu sein scheint. Genauer gesagt, sie wandelt den BF code in eine andere Darstellung um und nimmt dabei Optimierungen vor.

Aber lange dauerts auch mit der alten (langsamen) Variante auch nicht mehr
Miniaturansicht angehängter Grafiken
untitled_768.png  
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#22
  Alt 22. Jan 2010, 23:26
Ich fahr dann auch mal heim ... bin mal gespannt, wie weit meiner mit Rechnen ist.

hab mal alles zusammengepackt, was ich grad so mithab
Angehängte Dateien
Dateityp: 7z brainfuck_639.7z (512,8 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
FreePascal / Lazarus
 
#23
  Alt 22. Jan 2010, 23:56
Hi,

die vor etwa einer Stunde angekündigte optimierte Version ist da!

Was sit tut? Den code optimieren und dabei in eine interne Darstellung ünberführen, die dann von einem erneuereten Interpreter viel schneller interpretiert wird.

Gerade bei der mandelbrot-Berechnung macht sich das deutlich bemerkbar.

Der erste Beitrag ist (natürlich samt Anhang) aktualisiert.

Gruß
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

 
Delphi XE2 Professional
 
#24
  Alt 23. Jan 2010, 00:28
Wann kommt den von euch die erste Inline-BF-Version für Delphi???
Marc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#25
  Alt 23. Jan 2010, 10:03
hier das Ergebnis: man sollte besser nicht auf die Zeit ganz unten im Text achten

@divBy0:
Du kannst doch FAlters Klasse verwenden?
Schau mal in seine Codes rein
und aus meinem MiniBF läßt sich auch leicht eine Funktion basteln.
Angehängte Dateien
Dateityp: 7z mandelbrot_-_text2image_865.7z (319,6 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
FreePascal / Lazarus
 
#26
  Alt 24. Jan 2010, 19:59
Hi,

ich habe mich dem Tastatur-Problem (siehe Thread von himis Programm) angenommen. Letztendlich war ich weder mit read(Char) noch mit ReadKey zufrieden, weshalb ich beide genommen habe und man per Parameter -key umswitchen kann wenn ein Programm unerwartet auf Eingaben reagiert.

Hoffe mal das jetzt noch mehr BF Programme laufen... Für die Kompatibilität dienen jetzt schon die -8 (bzw. -7 bzw. -16 bzw. -32), -bf und -key Switches.

Vielleicht weise ich auch mal auf die undokumentierten Switches hin:
-v (verbose) schreibt zusätzliche Infos raus
--norun führt das Programm nciht aus, tut aber alle anderen Schritte (nur in Kombination mit -v sinnvoll)
--nostrip lässt den Vorgang des Kommentar-entfernens weg (was auch immer das bringen soll)

Gruß
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#27
  Alt 4. Feb 2015, 10:09


Mit solchen Themen-Titeln kommt dieses Forum noch in Verruf.
s. Anhang
Nach über 5 Jahren immernoch auf Platz ein.
Also das soll uns mal jemand nach machen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz