Programmiersprachen ohne Datentypen



  • Hallo,

    kann mir wer sagen wie man die Programmiersprachen nennt, die ohne Datentypen wie int, double, string, etc. auskommen?

    Also nicht c++ sondern Perl zb.
    Solche Sprachen nennt man doch irgendiwe anders, bezüglich den nicht notwenigen Datentypdeklaration. Ich meine ich habe es schon einmal gehört, aber mir fällt der Fachausdruck leider nicht mehr ein...

    Kann mir wer helfen?

    Gruß Gustl



  • untypisierte Sprache



  • Danke, dachte zuerst an datentyplose, aber das war es nicht.

    Gruß



  • Woebi das Fehlen von Datentype nicht bedeutet, dass die Programmiersprache untypisiert ist.



  • "Untypisierte Sprache" ist eigentlich falsch, obwohl die Formulierung gern verwendet wird.
    Besser wäre "schwach typisierte Sprache".

    Im Prinzip geht es ja nur darum, dass die Variablen keinen Typ haben.
    Objekte haben immer einen Typ.

    Auch wenn Sprachen denkbar sind, die nur einen Typ kennen (String müsste ausreichen um Turing-Complete sein zu können schätze ich). Praktisch wäre sowas aber nicht.



  • hustbaer schrieb:

    Auch wenn Sprachen denkbar sind, die nur einen Typ kennen (String müsste ausreichen um Touring-Complete sein zu können schätze ich). Praktisch wäre sowas aber nicht.

    Bash. 🙂

    Nagut, bash hat in neueren Versionen auch arrays und integer. Aber die arrays dürfen als Elemente ausschließlich strings enthalten und die integers sind auch alles andere als intuitiv zu verwenden.



  • hustbaer schrieb:

    "Untypisierte Sprache" ist eigentlich falsch, obwohl die Formulierung gern verwendet wird.
    Besser wäre "schwach typisierte Sprache".

    Nein, schwach typisiert bedeutet, dass das Typsystem leicht umgangen werden kann, wie z.B. in C, wo man alles mögliche ineinander casten kann und das häufig auch tut.

    Man muss hier aufpassen, da es verschiedene Sichtweisen gibt. Du hast auf der einen Seite die Vertreter der Typtheorie, für die stellt ein Typ eine Eigenschaft eines Programms bzw. Programmteils dar, also z.B. haben Variablen und Ausdrücke Typen. In dem Sinne wäre Python (ich kann kein Perl und will da nichts unnötig falsches sagen) untypisiert.

    Andere nennen Python dynamisch typisiert, im Gegensatz zur statischen Typisierung, d.h. Typen nicht Eigenschaften statischer Programmelemente sondern von Werten sind. Eine Variable kann im Laufe des Programms Werte von vielen verschiedenen Typen beinhalten. Die Typprüfung wird jeweils dynamisch gemacht, indem geprüft wird, ob die ausgeführte Operation für den jeweils aktuellen Typen gültig ist.

    Die beiden Sichtweisen kann man nicht wirklich miteinander vereinbaren. Deshalb muss man zumindest passiv mit beiden Begriffswelten umgehen zu können. Die häufigere ist die zweite, die findet man auch bei Wikipedia. Die erste nur, wenn man danach sucht.

    Auch wenn Sprachen denkbar sind, die nur einen Typ kennen (String müsste ausreichen um Touring-Complete sein zu können schätze ich). Praktisch wäre sowas aber nicht.

    tcl hat nur Strings, soweit ich weiß, und gilt auch als sehr praktisch. Übrigens hieß der Mann Turing. Das andere ist ein Auto von BMW 🙂



  • Bashar schrieb:

    Übrigens hieß der Mann Turing. Das andere ist ein Auto von BMW 🙂

    😃 😃



  • Bashar schrieb:

    Übrigens hieß der Mann Turing. Das andere ist ein Auto von BMW 🙂

    OK, hab ich korrigiert.



  • Ich würde die Typisierung von Python eher als implizit und dynamisch bezeichnen, nicht als typenlos. Einfaches praktisches Beispiel:

    File "hallo.py", line 3, in <module>
    print "Hallo" + 3
    TypeError: cannot concatenate 'str' and 'int' objects
    

    Eine Programmiersprache ohne Datentypen gibt es aus meiner Sicht nicht. Selbst wenn sie nur einen Datentyp kennt, dann ist das ein (bzw. der) Datentyp der Sprache. Wie auch immer der aussieht.

    Daten müssen irgendwie dargestellt werden, und die Art und Weise wie das geschieht, ist das Typensystem der Sprache.



  • Pothon schrieb:

    Eine Programmiersprache ohne Datentypen gibt es aus meiner Sicht nicht. Selbst wenn sie nur einen Datentyp kennt, dann ist das ein (bzw. der) Datentyp der Sprache. Wie auch immer der aussieht.

    Daten müssen irgendwie dargestellt werden, und die Art und Weise wie das geschieht, ist das Typensystem der Sprache.

    Deutsch? Damit kann man auch Befehle geben, wenn auch nicht ausschließlich und auch widersprüchliche und unvollständige. 😉



  • Und wie sieht das mit Sprachen aus, bei denen man keine Daten abspeichern kann? Dann gibt es doch soetwas wie "Keine Datentypen".



  • FreakY<3Cpp schrieb:

    Und wie sieht das mit Sprachen aus, bei denen man keine Daten abspeichern kann? Dann gibt es doch soetwas wie "Keine Datentypen".

    Was sind denn das für Sprachen?

    EDIT: Ich Döskopp. Meinst du so etwas wie CNC?



  • wxSkip schrieb:

    Deutsch? Damit kann man auch Befehle geben, wenn auch nicht ausschließlich und auch widersprüchliche und unvollständige. 😉

    Deutsch ist auch keine Programmiersprache 😉 Und selbst wenn, dann hat es auch Objekte - und Typen 😃

    @Freak: Ich schließe mich der letzten Frage von wxSkip an - kennst du denn eine Programmiersprache, die ohne Daten auskommt?



  • Sinnlose, wie die esoterischen... 😃



  • Ich hätte weiterlesen sollen. Jetzt hab ich meinen Beitrag ganz umsonst editiert. *heul*



  • Es hat Programmiersprachen ohne Zwang zur Deklaration der Datentypen gegeben und gibt es möglicherweise noch. FORTRAN war ein solcher Kandidat. Die Datentypen wurden nach dem Anfangsbuchstaben der Bezeichner festgelegt: i...n = integer, alles andere = real (float). Man konnte diese Vorabdeklaration in späteren FORTRAN-Versionen aber jederzeit ändern.

    bool-char-string kann man alles auf int packen und wird von native C auch so gemacht. Für int und float muss es aber eine Unterscheidung geben, entweder per Deklaration oder anders festgelegt. Schliesslich sind für Rechenoperationen völlig andere numerische Verfahren notwendig.

    Die Frage ist aber Dödelkram! 😮



  • BCPL und Assembler bzw. Maschinensprache sind doch typenlos.



  • Integer verschiedener Breite sind für die keine Datentypen?



  • Nach der Definition von Datentyp besitzt jede Sprache mindestens einen Datentyp. Also: Objektmenge + Operationen = Datentyp. Daher besitzt Assembler auch Datentypen.


Log in to reply