Shakespeare, esotherische Programmiersprache
-
Bashar schrieb:
Ich vermute mal, dass alle in dem Studiengang ein Referat über eine esoterische Programmiersprache halten müssen, und der OP hat halt gerade Shakespeare erwischt; deswegen nützen diese Tips nicht so viel.
Schöne Vermutung nachdem er sich bereits genau darüber ausgeweint hat.
Was esotherische Programmiersprachen in einem Designstudium machen, bleibt mir aber weiterhin ein Rätsel. Grundübungen in Scriptsprachen wie Python (au, ist ja gut) um eigene Exporter zu schreiben könnte ich mir noch vorstellen; aber Shakespeare? Nein, den Sinn sehe ich beim besten Willen nicht.
-
cooky451 schrieb:
esotherische
Jau, jedes Kind weiß: Bei Fremdwörtern kommt hinter jedes T ein H
-
@Bashar das hatte ich mal irgendwo gelesen.
Aber Malbolge sieht ja spaßig aus.
Wieso steht auf Wikipedia das erst 2 Jahre nach Entstehung der Sprache Malbolge das erste Programm erschien?
Ich meine der Typ der die Sprache entwickelt hat musste doch sicher auch vorher testen ob das alles funktioniert oder nicht?^^
http://de.wikipedia.org/wiki/Malbolge schrieb:
Als Beweis für die schwierige Entwicklung von Programmen steht, dass das erste Malbolge-Programm erst zwei Jahre nach dem Entstehen der Programmiersprache entstanden ist. Dieses Programm wurde nicht von einem Menschen programmiert, sondern von einem in Lisp geschriebenen Programm unter Anwendung eines Such-Algorithmus gefunden. Entwickelt wurde dieses Suchprogramm von Andrew Cooke.
Manche Leute wissen wohl echt nicht was sie mit ihrer Zeit anstellen sollen ...
-
Zeus schrieb:
Sorry der es ist nicht apt-get sondern port.
Dann krieg ich folgende Meldung: "Error: Insufficient privileges to write to MacPorts install prefix."
cooky451 schrieb:
Probier mal apt-get install shakespeare (ohne sudo). Sagt er dir dann, dass du Adminrechte dafür brauchst?
Ne dann kommt immer noch "command not found"...
Langsam aber sicher bin ich am Verzweifeln
Muss der Shakespeare-Ordner dabei in einem bestimmten Verzeichnis liegen? Also momentan liegt wie gesagt alles am Desktop. Weiß echt nicht mehr weiter *grml*
An den Rest: es geht allgemein um Programmiersprachen bei unseren Referaten. Brainfuck ist u.a. auch dabei wenn ich richtig informiert bin
Nen großen Sinn seh ich auch net, aber ändern kann ich's leider nicht
-
snickers_90 schrieb:
Dann krieg ich folgende Meldung: "Error: Insufficient privileges to write to MacPorts install prefix."
Du musst dem Befehl ein sudo voranstellen, damit du ihn mit Adminrechten ausführen kannst.
sudo port install shakespeare
Dann wird er dich nach deinem Passwort fragen, dieses gibst du dann ein (Du siehst aus Sicherheitsgründen nicht, was du eingibts).
-
sudo port install shakespeare
Ja cool, das hat mein Macbook jetzt schon mal ohne Fehler gemacht
Endlich tut sich mal was
Bleibt mir nur noch die Frage vom Anfang des Threads:
spl2c < dein_shakespeare_programm.spl > zwischencode.c gcc zwischencode.c -lspl -o wie_das_programm_am_ende_heissen_soll -und -eventuelle -weitere -optionen -z.B. -O2 -g gcc zwischencode.c /Pfad/zur/Bibliothek/libspl.a -o wie_das_programm_am_ende_heissen_soll -und -eventuelle -weitere -optionen -z.B. -O2 -g
Nur zum Verständnis:
– "dein_shakespeare_programm.spl" bezieht sich auf das Programm, das ich öffnen / kompilieren möchte, und gibt dessen Pfad an; in meinem Fall hello.spl
– "zwischencode.c" existiert noch nicht, wird aber automatisch erstellt und der Shakespeare-Code des hello.spl in C hinein geschrieben
– gcc greift dann die erstellte Datei "zwischencode.c" mittels der Bibliothek "libspl.a" auf (kann aber leider nur libspl.c im Ordner finden)
– weitere Optionen sind optional anzugeben
– ich kann beide Befehle zusammen oder nacheinander im Terminal ausführenRichtig so?
Das ganze mal umgeschrieben, wenn mein SPL-Ordner auf dem Desktop liegt:
spl2c < /Users/Manu/Desktop/spl-1.2.1/examples/hello.spl > zwischencode.c gcc zwischencode.c -lspl -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g gcc zwischencode.c /Users/Manu/Desktop/spl-1.2.1/libspl.c -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g gcc zwischencode.c /Users/Manu/Desktop/spl-1.2.1/spl.h -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g
Wenn ich das so ins Terminal eingeb krieg ich folgendes ausgegeben (bei einem Versuch kam auch, dass innerhalb der Datei Kommentare falsch sind, etc.):
Last login: Wed May 23 01:17:21 on ttys000 MacBP:~ Manu$ spl2c < hello.spl > zwischencode.c -bash: hello.spl: No such file or directory MacBP:~ Manu$ gcc zwischencode.c -lspl -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g i686-apple-darwin10-gcc-4.2.1: -und: No such file or directory MacBP:~ Manu$ gcc zwischencode.c /Users/Manu/Desktop/spl-1.2.1/libspl.c -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g i686-apple-darwin10-gcc-4.2.1: -und: No such file or directory MacBP:~ Manu$ gcc zwischencode.c /Users/Manu/Desktop/spl-1.2.1/spl.h -o helloworld -und -eventuelle -weitere -optionen -z.B. -O2 -g
Sollte ja heißen, dass die Dateien nicht in der richtigen Directory liegen, dem ist aber nicht. Sie liegen auf dem Desktop, direkt im SPL Ordner. Die Datei "hello.spl" liegt wie ursprünglich im examples Ordner desgleichen.
Die never ending Shakespeare Story geht in die letzten Runden (hoff ich jedenfalls...
)
-
Meinste wirklich "-und -eventuelle -weitere -optionen -z.B." sind echte Parameter für GCC?
Bashar schrieb:
cooky451 schrieb:
esotherische
Jau, jedes Kind weiß: Bei Fremdwörtern kommt hinter jedes T ein H
Natürlich. Die stammen schließlich alle von theoretisch ab.
-
cooky451 schrieb:
Meinste wirklich "-und -eventuelle -weitere -optionen -z.B." sind echte Parameter für GCC?
Keine Parameter, aber doch eine Art Kommentar oder? Ähnlich wie man das bei anderen Programmiersprachen eben mit // oder /* … */ auskommentiert, so macht man das da mit "-" oder? Weiß es ja nicht, drum frag ich ja
Oder muss ich das komplett weglassen?
Der Grund, warum es noch nicht läuft, ist es aber ja eher nicht oder?
cooky451 schrieb:
esotherische
Jau, jedes Kind weiß: Bei Fremdwörtern kommt hinter jedes T ein HNatürlich. Die stammen schließlich alle von theoretisch ab.
gute Herleitung
Dann ist meine vermeintliche falsche Rechtschreibung gar nicht so falsch
-
Ne. Die -xyz sind Parameter, die dem Programm beim Start sagen, was es eigentlich machen soll. Mit Kommentaren hat das nichts zu tun. SeppJ wollte dir nur zeigen, dass man da noch mehr hinschreiben kann, hat aber nicht damit gerechnet, dass du keine Ahnung von Programmen hast, die man über Startparameter steuert.
-
Was das Verzeichnis angeht: Schau mal mit den Befehlen "pwd" und "ls", ob Du überhaupt im Desktop-Verzeichnis im SPL-Ordner bist.
-
snickers_90 schrieb:
MacBP:~ Manu$ spl2c < hello.spl > zwischencode.c -bash: hello.spl: No such file or directory
Nachdem Du Dich ein bisschen mit dem OSX-Terminal angefreundet hast, empfehle ich Dir zunächst ein Tutorial zu Unix/Linux und Bash:
http://www.vorkon.de/SU1210.001/drittanbieter/Dokumentation/linuxfibel/default.htm
Irgendjemand wird jetzt sicher meckern, aber ich guck da immer wieder rein.Du musst die 'hello.spl' finden und in dieses Verzeichnis wechseln:
Eingabe im Terminal:
find -name "hello.spl"
Die Ausgabe sollte so ähnlich aussehen:
./shakespeare/examples/hello.spl
Dahin wechseln:
cd ./shakespeare/examples
Tipp: Bei der Eingabe immer wieder mal die TAB-Taste drücken, und sehen, ob und wieweit die Bash Dir den Wust vervollständigt.
Nun guckst Du, ob es hier ein makefile gibt:
ls -l
Wenn ja, dann:
make
Wenn nein, legst Du eine Text-Datei mit dem Namen machmal.sh an und gibst ihr folgende zwei Zeilen mit:
../spl/bin/spl2c < hello.spl > hello.c
gcc -O2 -Wall -Wno-unused -I../spl/include -c hello.cAufruf mit:
./machmal.sh
Wichtig ist das './' am Anfang, da die Bash das aktuelle Verzeichnis nicht automatisch durchsucht.
Ich habe es hier bei meinem Linux zwar noch nicht geschafft, eine Executable herzustellen, aber vielleicht ist Dein Shakespeare fehlerfreier.
viele grüße
ralphP.S.: Das ist ja eine esotierische Viecherei :D.
-
Wäre doch viel zu einfach und langweilig, wenn das jetzt "schon" laufen würde...
Oh man, wenn ich das nicht hinkriegen MÜSSTE wärs echt supi...*grml* Danke für die super Erklärungen, aber es will einfach trotzdem nicht so wie ich will
Meinst Du, dass das unter Linux wohl einfacher wäre? Könnte zur Not meinen alten Laptop platt machen und da Linux draufhauen...wobei es mir am Mac schon echt lieber wäre...auch wegen der Präsentation...
Also...nochmal langsam langsam...
Eines vorweg: der genaue Pfad der "hello.spl" ist /Users/Manu/Desktop/spl-1.2.1/examples/hello.spl. Den muss ich da ja nirgends angeben oder? Der soll ja gefunden werden?!
rkhb schrieb:
find -name "hello.spl"
darauf folgt bei mir das:
find: illegal option -- n find: illegal option -- a find: illegal option -- m find: illegal option -- e find: hello.spl: No such file or directory MacBP:~ Manu$
Wenn ich dann einmal Tab drück kommt folgendes:
Display all 1758 possibilities? (y or n)
bei zweimal Tab das:
[.CFUserTextEncoding .DS_Store .Trash/ .Xcode/ .adobe/ .avidemux/ .bash_history .config/ .cups/ .dropbox/ .dvdcss/ .fontconfig/ .freemind/ .ganttproject .jenny/ .mplayer/ .nchsoftware/ .profile .profile.macports-saved_2012-05-21_at_19:03:32 .smb/ .thumbnails/ Adlm/ Applications/ --More--
Ich habe es hier bei meinem Linux zwar noch nicht geschafft, eine Executable herzustellen, aber vielleicht ist Dein Shakespeare fehlerfreier.
Dann hab ich ja gute Aussichten dass das bei mir als Nichtprogrammierer bald läuft
Bis zum Referat bin ich wahrscheinlich am Ende mit den Nerven
LordJaxom schrieb:
Was das Verzeichnis angeht: Schau mal mit den Befehlen "pwd" und "ls", ob Du überhaupt im Desktop-Verzeichnis im SPL-Ordner bist.
Permission denied...
-
Ach vergiss das mit dem find, blöder Tipp. Du kennst doch den Pfad, da musst du nichts suchen.
1. GCC installieren (Haste schon)
2. spl2c installieren (Haste schon?)
3. Terminal öffnen
4. Zum Ordner "/Users/Manu/Desktop/spl-1.2.1/examples/" navigieren
5. "spl2c < hello.spl > hello.c" in das Terminal eingeben
6. "gcc hello.c -lspl -o hello" in das Terminal eingeben
7. "./hello" in das Terminal eingeben (Das sollte das von dir erstellte Programm starten.)Bitte sagen an welchem Schritt es scheitert und genaue Fehlermeldung posten. spl2c zu installieren sollte eigentlich die größte Hürde gewesen sein, den Rest packen wir schon.
-
rkhb schrieb:
Eingabe im Terminal:
find -name "hello.spl"
Nein,
find . -name hello.spl
.
-
cooky451 schrieb:
4. Zum Ordner "/Users/Manu/Desktop/spl-1.2.1/examples/" navigieren
Übersetzung für Anfänger:
cd /Users/Manu/Desktop/spl-1.2.1/examples
-
snickers_90 schrieb:
Meinst Du, dass das unter Linux wohl einfacher wäre?
Nein. Da kommen weitere Probleme auf Dich zu.
der genaue Pfad der "hello.spl" ist /Users/Manu/Desktop/spl-1.2.1/examples/hello.spl. Den muss ich da ja nirgends angeben oder? Der soll ja gefunden werden?!
Wenn Du den genauen Pfad kennst, dann musst Du ihn natürlich nicht suchen. Es passiert aber manchmal, dass Installer-Programme das Zeug nach eigenem Gutdünken quer über die Platte verteilen. Warum 'find' bei Dir zickt, weiß ich nicht.
Du "navigierst" zu dem Pfad mit dem Befehl 'cd' (change directory):
cd /Users/Manu/Desktop/spl-1.2.1/examples
Mit 'pwd' (print working directory) prüfst Du nach, ob Du Dich auch tatsächlich dort befindest:
pwd
Wenn Du die Mitteilung 'Permission denied' erhältst, probiere es mal, indem Du dem Befehl ein 'sudo' voranstellst. Damit wirst Du für diesen Befehl zum Superuser (root) und darfst alles. Gilt auch für die anderen Befehle.
Mit 'ls' (list) lässt Du Dir die Dateien im aktuellen Verzeichnis anzeigen und guckst, ob sich darunter eine Datei namens 'Makefile' befindet. Wenn diese Datei vorhanden ist, gibst Du
make
ein.
Nun guckst Du mit 'ls', ob sich im Verzeichnis eine Datei namens 'hello' (ohne irgendwelche Zusätze) befindet. Wenn diese Datei vorhanden ist, rufst Du sie mit
./hello
auf. Wichtig ist das './' (Punkt heißt: aktuelles Verzeichnis) am Anfang, sonst findet die Bash die Datei nicht.
Es sollte nun ein 'Hello World!' auf dem Bildschirm stehen.
Die ursprünglichen Sources haben Programmierfehler, die eine fehlerhafte C-Datei produzieren und die Herstellung einer Executable verhindern. Man muss einen Fork installieren:
Ich hoffe aber, dass das bei Dir nicht nötig ist.
viele grüße
ralph
-
cooky451 schrieb:
Ach vergiss das mit dem find, blöder Tipp. Du kennst doch den Pfad, da musst du nichts suchen.
1. GCC installieren (Haste schon)
2. spl2c installieren (Haste schon?)
3. Terminal öffnen
4. Zum Ordner "/Users/Manu/Desktop/spl-1.2.1/examples/" navigieren
5. "spl2c < hello.spl > hello.c" in das Terminal eingeben
6. "gcc hello.c -lspl -o hello" in das Terminal eingeben
7. "./hello" in das Terminal eingeben (Das sollte das von dir erstellte Programm starten.)Bitte sagen an welchem Schritt es scheitert und genaue Fehlermeldung posten. spl2c zu installieren sollte eigentlich die größte Hürde gewesen sein, den Rest packen wir schon.
Das gibts doch nicht
Also:
1.GCC ist installiert
2. Was genau ist spl2c?
3. OK
4. Wenn an dieser Stelle nach der Passwortabfrage "macBP:~ Manu$" stehen soll, dann passts
5.-bash: hello.spl: No such file or directory
i686-apple-darwin10-gcc-4.2.1: hello.c: No such file or directory
7. geht demzufolge auch nicht
Hab hier noch ne angebliche Art "Compiler" gefunden, kann man damit evtl. irgendwas anfangen? Parrot sagt mir leider auch nichts...
https://bitbucket.org/riffraff/shakespeare-parrot/src/tip/shakespeare.pir
-
Oh man, mir wirds schon langsam echt unangenehm. Ihr schreibt supercoole und auch verständliche Beiträge, aber irgendwas passt einfach nicht...
Danke nochmal zwischenrein
-
Also Du musst Dir auch schon selbst noch ein bisschen Mühe geben! Wenn man etwas PC-affin ist, bekommt man vieles eigentlich auch durch Probieren raus.
snickers_90 schrieb:
2. Was genau ist spl2c?
Der Shakespeare-Compiler, über den wir seit vier Seiten reden. Der, den Du bereits erfolgreich installiert haben solltest...
4. Wenn an dieser Stelle nach der Passwortabfrage "macBP:~ Manu$" stehen soll, dann passts
Welche Passwortabfrage? Für den cd-Befehl? Und nein, es passt nicht, da Du dich immernoch im Heimverzeichnis (~) befindest. Überprüfe den Pfad doch mal selbst mit pwd und lass das raten sein ;). Und wenn Du wirklich permission denied bekommst kopiere doch mal die Zeilen des Terminals von der Befehlseingabe bis zur nächsten Eingabeaufforderung hier rein.
-
4. ist der Fehler. Da du danach immernoch im falschen Verzeichnis bist, findet er die Dateien auch nicht. Da soll stehen: /Users/Manu/Desktop/spl-1.2.1/examples/