Forum: Offtopic Unglaubliches Projekt - Lisp Interpreter in Conways Game of Life CPU


von Michael W. (Gast)


Lesenswert?

Na, wer von Euch baut diese CPU mal in Hardware?

https://github.com/woodrush/lisp-in-life

PS An alle Dieselmotor-Entwickler bei der Auto-Mafia, bitte nicht 
antworten, denn Ihr versteht nicht, worum es hier überhaupt geht (das 
hatten wir neulich schon...) Schuster, bleib bei Deinen Leisten (ob mit 
gesundem Menschenverstand, oder ohne!) :D Spaß muss sein!!

: Verschoben durch Moderator
von _gast (Gast)


Lesenswert?


von blah (Gast)


Lesenswert?

Ich finds auch spannend.

Aber war das Forum aber nicht eigentlich für eigene Projekte gedacht und 
nicht für Fundstücke aus dem Netz?

von Einer (Gast)


Lesenswert?

Klar, irgendwie schon witzig, aber am Ende dann doch wieder nicht:

Sobald Turing Vollständigkeit für ein System bewiesen ist, kann damit 
alles gemacht werden, was man sonst so mit einem Computer machen kann.

D.h. mit dem Lisp-Interpreter in Conways Game of life könnte man einen 
kompletten PC simulieren, inkl. Betriebssystem mit Browser, und in 
diesem Browser läuft wiederum ein Javascript-Programm, in dem ein 
AVR-Mikrocontroller simuliert wird, der einen C64 simuliert, und dort 
läuft dann ein Simulator für einen Z80, auf dem CP/M läuft, auf dem ein 
oller Texteditor gestartet wird, in dem man etwas Source-Code tippt, der 
...

Ja, das alles wird unendlich lahm, aber würde halt funktionieren.

von Michael W. (Gast)


Lesenswert?

Einer schrieb:
> Klar, irgendwie schon witzig, aber am Ende dann doch wieder nicht:
>
> Sobald Turing Vollständigkeit für ein System bewiesen ist, kann damit
> alles gemacht werden, was man sonst so mit einem Computer machen kann.

Ja, Turing-vollständig ist vieles (und auch sehr einfache Systeme). Ist 
natürlich ne Spielerei, aber finde ich unglaublich, dass einer da sogar 
einen Compiler für "Game of Life" Maschinensprache erstellt, womit dann 
der Lisp-Interpreter compiliert wird.

Sicherlich kommt nächste Woche ein Lisp in Minecraft...

Hat einer mal die Trisolaris Trilogie von Liu Cixin gelesen? Dort wird 
ein "Computer" zur Lösung des 3-Körperproblemes mit Heerschaaren von 
Soldaten simuliert. Das erinnert mich hieran.

von Toppi (Gast)


Lesenswert?

Wieso haben die Faulpelze nicht gleich Conways Game of Life in ihrem 
Interpreter implementiert?

von Cartman (Gast)


Lesenswert?

Ein LISP Interpreter auf einer 8 k PDP8 verdient Respekt.
Aber das hier ist nur ein akademischer Hirnfurz gelangweilter Deppen.

von Michael W. (Gast)


Lesenswert?

Cartman schrieb:
> Ein LISP Interpreter auf einer 8 k PDP8 verdient Respekt.
> Aber das hier ist nur ein akademischer Hirnfurz gelangweilter Deppen.

Nein, Lisp ist sehr einfach zu implementieren. Zumindest ein reiner 
Interpreter mit einfacher GC.

Lisp wird größtenteils in Lisp selbst implementiert. Lisp in Lisp. 
Kleiner Sprachkern. Ähnlich wie Forth diesbezüglich.

von Cartman (Gast)


Lesenswert?

Ich glaube eher, du kennst keine PDP8 mit 8 k Worten.

von halbvoll (Gast)


Lesenswert?

für solche sachen auf "einem anderen level" nimm doch die linksammlung 
und lass den clickbait titel

von Michael W. (Gast)


Lesenswert?

Cartman schrieb:
> Ich glaube eher, du kennst keine PDP8 mit 8 k Worten.

8 k ist doch fürstlich (!!) Speicher - ich habe mit 256 12 Bit Worten 
angefangen :-) In Maschinensprache. Nix mit Assembler. Ihr seid eben 
Warmduscher hier. Außerdem - Du meinst sicher 8 K (K = 1024, k = 1000).

von Christoph Z. (rayelec)


Lesenswert?

Toppi schrieb:
> Wieso haben die Faulpelze nicht gleich Conways Game of Life in ihrem
> Interpreter implementiert?

Das gibt es IMHO schon!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Christoph Z. schrieb:
> Toppi schrieb:
>> Wieso haben die Faulpelze nicht gleich Conways Game of Life in ihrem
>> Interpreter implementiert?
>
> Das gibt es IMHO schon!

Nicht nur das, eine "VM" für ein verallgemeinertes Game of Life ist
sogar ein wesentlicher Bestandteil des Systems (s.u. in Ebene 1). Ich
habe mir das mal etwas näher angeschaut.

Das System kann in 5 Abstraktionsebenen aufgeteilt werden:

0. Klassisches Game of Life (niedrigste Abstraktionsebene)

1. Verallgemeinertes Game of Life mit OTCA-Metazellen (jede Metazelle
   besteht aus einer quadratischen Anordnung von 2048² klassischer
   Game-of-Life-Zellen)

2. Logikgatter und "elektrische" Leitungen mit fließenden "Elektronen"

3. Computer bestehend CPU, ROM und RAM

4. Auf der CPU ausführbarer Maschinencode (höchste Abstraktionsebene)

Die Elemente der Ebenen 1 bis 3 sind ausschließlich aus den Elementen
der jeweils nächstniedrigeren Ebene aufgebaut.

Für die CPU auf Ebene 3 gibt es eine Toolchain bestehend aus C-Compiler
und Assembler. Der Lisp-Interpreter ist in C geschrieben, wird
kompiliert und der erzeugte Maschinencode (Ebene 4) ins ROM des im Game
of Life implementierten Computers geschrieben. Der Lisp-Code wird ins
RAM geschrieben und von dort interpretiert.

Ich empfand das Game of Life bisher immer ziemlich langweilig, bin aber
inzwischen (nach dem Durchlesen einiger Artikel zu dem Thema) extrem
beeindruckt von dem, was da eine Fan-Gruppe über die Jahre hinweg
geschaffen hat.

Natürlich kann man sich fragen, warum die Leute ihr Gehirnschmalz nicht
in etwas "Sinnvolleres" (wie auch immer man das definieren mag) stecken.
Ich bin mir sicher, dass sie das auch tun, aber hin und wieder tut man
halt Dinge auch einfach nur deswegen, weil sie Spaß machen oder auf
einen eine Faszination ausüben.

: Bearbeitet durch Moderator
von Michael W. (Gast)


Lesenswert?

Super, vielen Dank, endlich mal einer der es verstanden hat...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.