Die Quelle der Programmierung



  • Sind Wirklich nur [und]-, [oder]- [nicht]-Schalter notwendig, damit alles machbar ist?

    Also das Minimum an Notwendigkeit um z.b. Arithmen, Operatoren, Funktionen daraus schreiben zu können?

    D.h. wenn man eins dieser drei Schaltungen aus unserem Sandkasten rausnimmt, wäre dann eine Programmierung nicht mehr möglich?



  • Ohne bedingte Sprünge wird es wohl sehr langweilig.



  • Nicht alle drei Schalter sind für alle logischen Schaltungen nötig. Aber zum Aufschreiben sind sie schon praktisch. Es reicht zum Beispiel alleine NAND.
    a oder b = nicht(nicht(a) und nicht(b))

    Algorithmen kriege ich damit nicht hin. Da fehlt mir zum Beispiel das goto.



  • also mit NAND und goto alleine kann man damit schon sehr viel bzw alles erreichen?

    (für meine philosophischen gedanken)



  • Wenn du wirklich ganz nach unten gehen willst, kommst du mit einem einzigen Bauteil aus - entweder NAND oder NOR, daraus kannst du alle booleschen Funktionen zusammenstellen. Das Problem dabei ist, daß so eine Schaltung nur begrenzte Eingaben entgegennehmen kann.
    Um mehr Daten zu verarbeiten, benötigst du eine Möglichkeit, Werte zwischenzuspeichern und sequentiell zu verarbeiten - d.h. irgendeine Art von Rückkopplungen.



  • Du vermischst hier verschiedene Seiten.
    Auf Hardwareseite brauch man Transistoren, Kondensatoren usw. Daraus baut man dann NAND-Bausteine für die Schaltungen, Speicherbausteine etc.
    Auf Seit der Programmierung braucht man Variablen, goto, if mit Test auf Gleichheit zu einer Konstanten und bedingtem goto sowie Addition mit einer Konstanten.



  • Tri-State und Synchronisationshilfen könnten noch ganz nützlich sein, dann kannst du mit NAND oder NOR Alles machen, was du willst. Auch sequentielle Verarbeitung kannst du damit nachbilden, da du ja Signale Rückkoppeln kannst. Im Zweifel baust du dir einen Prozessor daraus, dann weißt du, dass du damit Turing-komplett sein kannst.

    PLDs, auch die komplexerem, bestehen ja auch im Prinzip aus einfachen Schaltungen. Logikzellen und Flipflops bilden in FPGAs eine Makrozelle, die kannst du auch komplett aus NAND oder NOR nachbilden. Auch Speicher kannst du damit nachbauen.



  • Logik schrieb:

    Tri-State und Synchronisationshilfen könnten noch ganz nützlich sein

    Tri-State lässt sich auch mit binärer Logik umsetzen, für Synchronisation benötigt nur ein Taktsignal und einige NAND-Gatter. Damit ist wohl das einzige, was gegen die Turing-Vollständigkeit von NAND-Schaltungen spricht, die endliche Speicherkapazität.


Anmelden zum Antworten