Lineare-/Nichtlineare Datentypen



  • Hallo Leute,

    ein Kumpel mach grad ein Informatik Fernstudium.

    Und da behandeln sie Lineare und Nichtlineare DatenTypen als
    damit meinen sie Listen array etc.

    hmm.. müsste das nich ehr DatenStrukturen heißen1?!?

    habe noch nie gehört das man dazu auch DatenTypen sagt!?

    Grüße 😕



  • Nee, das ist tatsächlich ein Konzept in der Typtheorie. Ich kenne mich damit aber auch nicht aus. Im Kontext von Rust habe ich hier und da in Diskussionen mal "linear type" und "affine linear type" gelesen. So, wie ich das verstanden habe, kannst Du in C++ und Rust affinlineare Typen konstruieren. Ein Beispiel wäre std::unique_ptr<T>. Ich glaube, es hat was mit Kopierbarkeit zu tun. Und der Unterschied zwischen linear und affinlinear hat glaub'ich was damit zu tun, dass Werte von linearen Typen irgendwie konsumiert werden müssen, wo man im Gegensatz Dinge wie einen unique_ptr einfach "sterben lassen kann" (via Destruktor).

    Mir sind diese Begriffe nicht in meinem Informatikstudium begegnet. Aber im Hauptstudium hat man ja auch gewisse Wahlmöglichkeiten. Ich schätze mal, dazu hätte ich mir irgendwas in Sachen Compiler-Bau oder so anhören müssen. Damals hat mich das aber noch nicht so interessiert.

    https://en.wikipedia.org/wiki/Substructural_type_system

    Hmm, in der Liste mit Programmiersprachen, die lineare oder affinlineare Typen anbieten, taucht C++ aber nicht auf, wie ich gerade sehe. Das liegt wahrscheinlich daran, dass unique_ptr "nullable" ist und use-after-move erlaubt. In Rust dagegen ist ein move destruktiv. Hmm...



  • Ich glaube, wenn man mit linearen Typen Arrays und Listen meint, dann meint man damit, dass es Sequenzen sind. Das Konzept aus der Typtheorie ist damit vermutlich nicht gemeint. Mal geraten: Nichtlineare sind Bäume?



  • wenn etwas zu einfach ist, erfindet man ein paar neue namen, damit nicht mehr jeder mitreden kann.



  • Naja ich habe gelernt,

    dass Listen Array, Bäume, queues, stackse, graphen, usw. => Datenstrukturen sind!

    Lineare sind daten die sequential abgelegt sind array listen..
    und nicht Linear sind bäume graphen etc.

    Die Begriffe Linea und Nichtlinear sind mir bekannt.. ABER es sind für mich eben Strukturen und keine Typen !?! ? Deswegen die frage;)


Log in to reply