Frage zu untypisierter Sprache

Frage zu untypisierter Sprache

am 06.11.2006 09:42:16 von Elcaro Nosille

Ich hatte da mal eine Idee bzgl untypisierter Sprachen. Und zwar ist
es ja so, daß man einer Variablen in einer untypisierten Sprache in
Folge beliebige Typen zuweisen kann. Also z.B. erstmal String, dann
Integer, dann Float (daß man das alles intern per Zuweisungs-Konver-
sion als String speichern könnte sei mal ignoriert).
Das gefällt mir nicht (mann bin ich pedantisch) und da dachte ich
mir folgendes: Der Typ einer Variablen wird bei der ersten Zuweiung
gesetzt. Wenn ich etwa in einer fiktiven Sprache folgendes habe:
str = "blabla";
Dann kann ich dem nicht danach ein Float zuweisen:
str = 1.0;
So daß der Typ für den ganzen Sichtbarkeitsbereich der Variablen
konstant bleibt.
Damit es keine Unklarheiten bei Typen mit unklarer Identität gibt,
etwa bei Sprachen wo ich ein Datum als String zuweisen kann, das
aber dann von speziellen Funktionen/Methoden als Datum angespochen
werden kann müsste man hierfür eine spezielle Syntax haben. Z.B.
würde ein Datum folgendermaßen initialisiert:
d = DATE("6.11.2006");
Und folgendes würde ein Integer-Typ festlegen:
i = 1;
Während eine Float so aussehen würde:
f = 1.0;

Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
(nenn ich jetzt mal so) hat? Ich fänd das wirklich gut. Ich mein
untypisierte Sprachen (was meine ja nicht wirklich wäre) haben
ja im Scripting-Bereich ihre Berechtigung.

BTW: In die dclpm hab ich das ge-XPost-et weil das ja auch eine
untypsierte Sprache ist.

Re: Frage zu untypisierter Sprache

am 06.11.2006 10:34:50 von Peter Schmidt

Elcaro Nosille schrieb:

> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
> (nenn ich jetzt mal so) hat? Ich fänd das wirklich gut. Ich mein
> untypisierte Sprachen (was meine ja nicht wirklich wäre) haben
> ja im Scripting-Bereich ihre Berechtigung.

Scha mal hier, da sind auch ein paar für stark typisiserte Sprachen
aufgezählt: http://de.wikipedia.org/wiki/Starke_Typisierung


Gruß
Pta

Re: Frage zu untypisierter Sprache

am 06.11.2006 10:36:12 von Peter Schmidt

Peter Schmidt schrieb:
> Scha mal hier, da sind auch ein paar für stark typisiserte Sprachen

Beispiele ----------------------------^

> aufgezählt: http://de.wikipedia.org/wiki/Starke_Typisierung

Sorry ;)

Re: Frage zu untypisierter Sprache

am 06.11.2006 10:48:45 von Hermann Riemann

Elcaro Nosille schrieb:

> Das gefällt mir nicht (mann bin ich pedantisch) und da dachte ich
> mir folgendes: Der Typ einer Variablen wird bei der ersten Zuweiung
> gesetzt. Wenn ich etwa in einer fiktiven Sprache folgendes habe:
> str = "blabla";
> Dann kann ich dem nicht danach ein Float zuweisen:
> str = 1.0;

In den folgenden Zeilen habe ich

python
str = "blabla"
str
str = 1.0
str

eingetippt und folgendes erhalten,
wobei ich hier für die newsgroupsausgabe
in den ersten 4 Spalten wegen dem '>' Zeichen
"- " eingefügt habe.

- > python
- >>> str = "blabla"
- >>> str
- 'blabla'
- >>> str = 1.0
- >>> str
- 1.0

Nicht ganz so schön:
ruby
str = "blabla";
puts str;
str=1.0;
puts str;

crtl-D

liefert
blabla
1.0

Noch häßlicher

perl
@str = "blabla";
@str;
rie@i:~> perl
@str = "blabla";
print @str;
@str=1.0;


crtl-D

liefert
blabla1

Hermann
der hier auf ein Beispiel in javascript verzichtet.




> str = 1.0

--
http://www.Hermann-Riemann.de

Re: Frage zu untypisierter Sprache

am 06.11.2006 11:41:03 von Rainer Weikusat

Elcaro Nosille writes:
> Ich hatte da mal eine Idee bzgl untypisierter Sprachen. Und zwar ist
> es ja so, daß man einer Variablen in einer untypisierten Sprache in
> Folge beliebige Typen zuweisen kann. Also z.B. erstmal String, dann
> Integer, dann Float (daß man das alles intern per Zuweisungs-Konver-
> sion als String speichern könnte sei mal ignoriert).
> Das gefällt mir nicht (mann bin ich pedantisch) und da dachte ich
> mir folgendes: Der Typ einer Variablen wird bei der ersten Zuweiung
> gesetzt. Wenn ich etwa in einer fiktiven Sprache folgendes habe:
> str = "blabla";
> Dann kann ich dem nicht danach ein Float zuweisen:
> str = 1.0;
> So daß der Typ für den ganzen Sichtbarkeitsbereich der Variablen
> konstant bleibt.
> Damit es keine Unklarheiten bei Typen mit unklarer Identität gibt,
> etwa bei Sprachen wo ich ein Datum als String zuweisen kann, das
> aber dann von speziellen Funktionen/Methoden als Datum angespochen
> werden kann müsste man hierfür eine spezielle Syntax haben. Z.B.
> würde ein Datum folgendermaßen initialisiert:
> d = DATE("6.11.2006");
> Und folgendes würde ein Integer-Typ festlegen:
> i = 1;
> Während eine Float so aussehen würde:
> f = 1.0;
>
> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
> (nenn ich jetzt mal so) hat?

Perl. Oder wenigstens aehnlich: Werte unterschiedlicher Typen werden
jeweils in einem ihnen spezifischen Format gespeichert und bei Bedarf
wird aus diesem Format in ein anderes konvertiert.

Re: Frage zu untypisierter Sprache

am 06.11.2006 13:22:56 von Andre Kelpe

Elcaro Nosille wrote:

>
> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
> (nenn ich jetzt mal so) hat? Ich fänd das wirklich gut. Ich mein
> untypisierte Sprachen (was meine ja nicht wirklich wäre) haben
> ja im Scripting-Bereich ihre Berechtigung.

Du suchst nach "duck typing" [0] wie es das z.B. in Python gibt, d.h.
Python ist typisiert: Jede Variable hat immer einen Typ, dieser kann
sich aber jederzeit ändern.

André

[0] http://en.wikipedia.org/wiki/Duck_typing

Re: Frage zu untypisierter Sprache

am 06.11.2006 13:44:00 von Elcaro Nosille

> Scha mal hier, da sind auch ein paar für stark typisiserte Spra-
> chen aufgezählt: http://de.wikipedia.org/wiki/Starke_Typisierung

Naja, ich halte meine Idee eher für "medium Typisiert" (analog zum
Senf *g*). Von daher passt das vielleicht nicht ganz ins Schema.

Re: Frage zu untypisierter Sprache

am 06.11.2006 14:29:45 von Claus Reibenstein

Elcaro Nosille schrieb:

> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
> (nenn ich jetzt mal so) hat?

Mir ist nichts in dieser Richtung bekannt.

Typisierte Sprachen gehen i.d.R. andere Wege wie z.B. Namenskonventionen
oder explizite Variablendeklarationen.

Für ersteres fallen mir spontan FORTRAN (alles, was mit I, J, K, L, M
oder N anfängt, ist INTEGER, der Rest REAL) oder Basic (ging irgendwie
über die Endung) ein, für letzteres viele Sprachen (z.B. FORTRAN, C,
C++, Java).

> BTW: In die dclpm hab ich das ge-XPost-et weil das ja auch eine
> untypsierte Sprache ist.

Aber leider ohne Fup2. Das ist böse. Ich habe das für Dich nachgeholt
und Fup2 dclm hinzugefügt.

Gruß. Claus

Re: Frage zu untypisierter Sprache

am 06.11.2006 16:19:30 von Holger Schauer

On 4814 September 1993, Andre Kelpe wrote:
> Elcaro Nosille wrote:

>> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
>> (nenn ich jetzt mal so) hat? Ich fänd das wirklich gut. Ich mein
>> untypisierte Sprachen (was meine ja nicht wirklich wäre) haben
>> ja im Scripting-Bereich ihre Berechtigung.

> Du suchst nach "duck typing" [0] wie es das z.B. in Python gibt,
> d.h. Python ist typisiert: Jede Variable hat immer einen Typ, dieser
> kann sich aber jederzeit ändern.

Wenn ich die Webseite richtig lese, dann ist das bzgl. Python falsch:
Nicht die Variable hat den Typ, sondern das Objekt (der
"Variablenwert") das dahinter steht.[1]

Das ist aber was anderes, als das, was ich als Intention des OPs
verstanden habe: Er will gerade, dass der Typ von Objekten, die ich
einer Variable zuweisen kann, "statisch" festgelegt ist, sobald die
erste initale Bindung einer Variablen an ein Objekt erfolgt ist und
zwar so, dass der Typ aller folgenden Objekte, die ich der Variable
zuweise, der gleiche Typ wie beim initialem Objekt ist. Das ist aber
nur zu leisten, wenn die "Variable" (wenn ich die mal als Objekt
unabhängig von ihrem Wert begreife) selber etwas über Typen weiß.

Nein, ich kenne keine Sprache, die das implementiert.

Holger

Fup2: de.comp.lang.misc


Footnotes:
[1] Disclaimer: Ich kenne Python nur vom Hören-Sagen und
interpretiere die von Dir angegebenen Referenzen.

--
--- http://www.coling.uni-freiburg.de/~schauer/ ---
Fachbegriffe der Informatik - Einfach erklärt
6: Globale Variable
Parameterübergabemechanismus in 4GLs (Marit Köhntopp)

Re: Frage zu untypisierter Sprache

am 06.11.2006 19:47:29 von Markus Hagen

Elcaro Nosille wrote:

> Gibt es eine Sprache die solch eine
> "Initialisierungs-Typisierung" (nenn
> ich jetzt mal so) hat?

Matlab macht das glaube ich so.



Gruss, Markus

Re: Frage zu untypisierter Sprache

am 07.11.2006 09:53:18 von Ingo Menger

Elcaro Nosille wrote:

> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
> (nenn ich jetzt mal so) hat?


Mehrere. Was Du suchst, ist Typinferenz: Der Compiler erkennt anhand
der Verwendung der Variablen deren Typ und prüft auf Konsistenz.
Weiterhin erkennt der Compiler den Typ von Funktionen, usw.
Sprachen mit Typinferenz sind bisher die einzigen, in denen wirklich
nur typsichere Programme geschrieben werden können.

Re: Frage zu untypisierter Sprache

am 07.11.2006 11:19:15 von Hermann Riemann

Ingo Menger schrieb:

> Mehrere. Was Du suchst, ist Typinferenz: Der Compiler erkennt anhand
> der Verwendung der Variablen deren Typ und prüft auf Konsistenz.

Verwechlse nicht Compiler mit Interpreter.
Bei Variablen, deren Typ von der Verwendung abhängt
muß der Objektcode Typprüfungen machen, also interpretieren.

Beipiel:

str="xy";
if (extern_bool) str=1.0;
print str;

Es sei denn, die Typen sind mal codemmäßig gleichartig
wie char und integer mit Länge sizof(char).

Hermann
der sich gerade überlegt wie debugger mit
display str
umgehen sollen.

--
http://www.Hermann-Riemann.de

Re: Frage zu untypisierter Sprache

am 07.11.2006 12:16:12 von Elcaro Nosille

> Matlab macht das glaube ich so.

Interssant!

Re: Frage zu untypisierter Sprache

am 07.11.2006 12:21:52 von Elcaro Nosille

> Ich glaube, du suchst nach "Typinferenz". Haskell hat sowas z.b., wie
> von Georg schon erwähnt.
> Alternativ kannst du natürlich eine ganz klassische funktionale Sprache
> nehmen, wo Variablen immer nur einmal zugewiesen werden dürfen (ja, ich
> weiss schon, es gibt auch "let") - da erübrigt sich das natürlich.

Ok.

> Der Haken bei deinem Vorschlag ist allerdings, dass sich das ganze mit
> der Polymorphie von OO-Sprachen nicht sonderlich gut verträgt.

Naja, man müsste erstmal eine Art Null-Referenz auf das Objekt zuweisen
dessen Typ man sehen will; also z.B.:
auto = (Auto)EMPTYREF; // mal so C++-ähnlich formuliert
Und dann:
auto = Ferrari( 520, 325 ); // was bedeuten wohl diese beiden Zahlen

> Irgendwie brauchst du also einen Weg zurück - und sei es über explizite
> Zuweisung zu einer temporären Variable mit Casting.

Genau das hab ich hier ja gemacht.

Re: Frage zu untypisierter Sprache

am 07.11.2006 12:23:08 von Elcaro Nosille

> Mehrere. Was Du suchst, ist Typinferenz: ...

Nene, das geht darüber hinaus. Typinferenz leitet den Typ her,
definiert aber nicht, daß der Typ von der ersten Zuweisung an
im ganzen Gültigkeitsbereich der Variablen konstant bleiben muss.

Re: Frage zu untypisierter Sprache

am 07.11.2006 16:20:24 von Markus Hagen

Elcaro Nosille wrote:
> > Matlab macht das glaube ich so.
>
> Interssant!

Ja, wenn du solche Fragen stellst musst du mit interessanten Antworten
rechnen... :)

Ich habs jetzt mal ausprobieren können.
c = 'test' erzeugt eine Variable vom Typ char.
a = 12 erzeugt eine Variable vom Typ double.
allerdings kann man die miteinander multiplizieren, sofern die
Matrixdimensionen zusammenpassen. Intern wird scheinbar alles als
doulbe-Matritzen (oder Tensoren) gehalten. Ausser man erzeugt sich
explizit z.B. einen int16. Da ist die Typprüfung restriktiver - den
kann man dann nur mit int16 verheiraten.


Hoffe dich nicht gelangweilt zu haben,
Markus

Re: Frage zu untypisierter Sprache

am 07.11.2006 17:58:27 von Marcel Normann

Elcaro Nosille schrieb:

> Der Typ einer Variablen wird bei der ersten Zuweiung
> gesetzt.

IMHO nennt man das Duck Typing ("When I see a bird that walks like a duck
and swims like a duck and quacks like a duck, I call that bird a duck.").
Mir fällt da spontan Boo ein.

http://de.wikipedia.org/wiki/Duck_Typing
http://boo.codehaus.org/

Gruß, Marcel

Re: Frage zu untypisierter Sprache

am 08.11.2006 09:45:36 von Elcaro Nosille

> IMHO nennt man das Duck Typing ...

Nene, beim Ducktyping bleibt der Typ nach der Erst-Initialisierung
nicht erzwungenermaßen konstant wie bei meiner Idee.

Re: Frage zu untypisierter Sprache

am 14.11.2006 15:43:31 von Ingo Menger

Elcaro Nosille schrieb:

> > Mehrere. Was Du suchst, ist Typinferenz: ...
>
> Nene, das geht darüber hinaus. Typinferenz leitet den Typ her,
> definiert aber nicht, daß der Typ von der ersten Zuweisung an
> im ganzen Gültigkeitsbereich der Variablen konstant bleiben muss.

Rein theoretisch hast Du recht, aber kennst Du eine solche Sprache?
Meines Wissens prüfen alle typ-inferierenden Sprachen auch auf
Konsistenz.

Im übrigen glaube ich, daß die Vorstellung von der "ersten Zuweisung"
irreführend ist. Zu klären wäre beispielsweise was bei:

if (c) { a :=3D 5 } else { a :=3D "sieben" }

die "erste Zuwesiung" sein soll. Da es i.d.R. unentscheidbar ist,
welche der beiden Zuwesiungen zur Laufzeit ausgeführt wird, bleibt nur
"erste" als "zuerst im Quelltext vorkommend" zu interpretieren. Nur ist
dann unklar, warum die "erste" dann Vorrang haben soll, z.B. in
folgendem Programm:

function foo (boolean: c) : string
begin
if (c) { a :=3D 5 } else { a :=3D "sieben" }
return a
end

Der Kontext macht klar, daß a vom Typ string sein muß. Dein
Compiler/Interpreter würde jedoch darauf bestehen, daß es int sein
muß und folglich foo auch int zurückgeben muß, obwohl der
Programmierer explizit etwas anderes wünscht.

Nein, IMHO kommt es nur darauf an, daß alle Verwendungen von Variablen
und Funktionen untereinander konsistent sind.

Re: Frage zu untypisierter Sprache

am 15.11.2006 11:30:59 von Benedikt Rosenau

Ingo Menger schrieb unter anderem:

> Im uebrigen glaube ich, dass die Vorstellung von der "ersten Zuweisung"
> irrefuehrend ist. Zu klaeren waere beispielsweise was bei:

> if (c) { a := 5 } else { a := "sieben" }

> die "erste Zuwesiung" sein soll.

Die, die Implementierung zuerst ausfuehrt. Wenn das Inkonsistenzen
fuehrt, weil die Reihenfolge variieren kann, ist das das Problem des
Programmierers. Das widerlegt seinen Ansatz also nicht, zeigt aber
seine eingeschraenkte Wirksamkeit.

Wenn ich mich richtig erinnere, wurde im Rahmen frueher Versuche,
einen Compiler fuer Python zu bauen, Typinferenz auf typische
Skripte losgelassen. Dabei kam raus, dass die Leute so program-
ieren, dass nur ein Bruchteil der Variablen seinen Typ wechselt.
Das haengt natuerlich auch von der Art des Algorithmus fuer die
Typinferenz ab, doch es sollte eine belastbare qualitative Aussage
sein.

Die Idee, einen Typwechsel als optionale Warnung in einem Interpreter
zu implementieren, halte ich allerdings fuer beachtlich.
Benedikt

Re: Frage zu untypisierter Sprache

am 15.11.2006 14:26:09 von Hermann Riemann

Ingo Menger schrieb:

> function foo (boolean: c) : string
> begin
> if (c) { a := 5 } else { a := "sieben" }
> return a
> end
>
> Der Kontext macht klar, daß a vom Typ string sein muß.

Nein, bei return a wird a eventuell nach string konvertiert.

> Dein Compiler/Interpreter würde jedoch darauf bestehen,
> daß es int sein muß

Ein nicht optimierender Compiler würde für a 3 Variable
a.int, a.string und a.datentyp anlegen.

Wenn allerdings sowas in einer möglichen Codefolgekette
( Unter Berücksichtigung von Rückwärtsprüngen ) drin ist,
gibt es wegen der vielen Typabfragen keinen gewohnten schnellen code.

Hermann
der gerne das Ergebnis von return a+a wissen möchte,
wenn + in string-Fall Zusammenhängen bedeutet.

--
http://www.Hermann-Riemann.de

Re: Frage zu untypisierter Sprache

am 15.11.2006 21:57:20 von Elcaro Nosille

Ingo Menger schrieb:

> Rein theoretisch hast Du recht, aber kennst Du eine solche Sprache?

Ne, aber deswegen frag ich ja. Ich fände diese Idee nämlich sehr
sinnvoll. Vielleicht sollte ich mir die Idee patentieren lassen
(will ja sowieso keiner weiterverwenden *g*).

Re: Frage zu untypisierter Sprache

am 16.11.2006 10:57:59 von Ingo Menger

Elcaro Nosille schrieb:

> Ingo Menger schrieb:
>
> > Rein theoretisch hast Du recht, aber kennst Du eine solche Sprache?
>
> Ne, aber deswegen frag ich ja. Ich fände diese Idee nämlich sehr
> sinnvoll. Vielleicht sollte ich mir die Idee patentieren lassen
> (will ja sowieso keiner weiterverwenden *g*).

Ich kann den Sinn nicht erkennen. Was genau wolltest Du nochmal? Typen
inferieren und dann aber nicht auf konsistente Verwendung der Variablen
achten? Sinnlos, wenn es überhaupt geht, was ich bezweifle.
Oder, Typen inferieren und dann auf konsistente Verwendung achten? Gibt
es schon. Mehrfach, und in unterschiedlichen Ausprägungen.

Re: Frage zu untypisierter Sprache

am 18.11.2006 21:51:29 von Elcaro Nosille

Ingo Menger schrieb:

> Ich kann den Sinn nicht erkennen. Was genau wolltest Du nochmal? Typen
> inferieren und dann aber nicht auf konsistente Verwendung der Variablen
> achten?

Es geht mir darum, daß der Typ der Variablen bei der ersten Zuweisung *impl-
izit* definiert wird und sich dann nicht mehr ändern kann. D.h. man könnte
einer Variablen die zuerst als String zugewiesen worden ist nich mehr einen
anderen Typen zuweisen.

> Sinnlos, wenn es überhaupt geht, was ich bezweifle.

Schön, daß Du Dinge bewertest die garnicht diskutiert worden sind.

> Oder, Typen inferieren und dann auf konsistente Verwendung achten?
> Gibt es schon. Mehrfach, und in unterschiedlichen Ausprägungen.

Wo denn? Also wo in der Form wie hier im Thread mehrfach von mir beschrieben
und anderen nochmal wiedergegeben?

Re: Frage zu untypisierter Sprache

am 19.11.2006 03:17:57 von Georg Bauhaus

Elcaro Nosille wrote:
>
> Es geht mir darum, daß der Typ der Variablen bei der ersten Zuweisung
> *impl-
> izit* definiert wird und sich dann nicht mehr ändern kann.
....
> Also wo in der Form wie hier im Thread mehrfach von mir
> beschrieben
> und anderen nochmal wiedergegeben?

Hier nochmal (ich verwende mal einen anderen news-client,
beim letzten Mal scheint nur teilweise was angekommen zu sein?)

Vgl. zur Sprache hier: http://compsoc.dur.ac.uk/kaya/
Beispiel:

program Elcaros_Patent;

Void main
{
num = 3.14;
num = "3.one_four";
}

$ kayac foo.kaya
Compiling Program Elcaros_Patent
foo.kaya:7:Can't unify Float and String

Compilation exited abnormally with code 1 at Thu Nov 16 12:27:36

Georg

Re: Frage zu untypisierter Sprache

am 23.11.2006 17:56:05 von Ludwig Maetzke

Hallo Elcaro,

> Und zwar ist
> es ja so, daß man einer Variablen in einer untypisierten Sprache in
> Folge beliebige Typen zuweisen kann. Also z.B. erstmal String, dann
> Integer, dann Float (daß man das alles intern per Zuweisungs-Konver-
> sion als String speichern könnte sei mal ignoriert).
> Das gefällt mir nicht (mann bin ich pedantisch) und da dachte ich
> mir folgendes: Der Typ einer Variablen wird bei der ersten Zuweiung
> gesetzt. Wenn ich etwa in einer fiktiven Sprache folgendes habe:
> str = "blabla";
> Dann kann ich dem nicht danach ein Float zuweisen:
> Damit es keine Unklarheiten bei Typen mit unklarer Identität gibt,
> etwa bei Sprachen wo ich ein Datum als String zuweisen kann, das
> aber dann von speziellen Funktionen/Methoden als Datum angespochen
> werden kann müsste man hierfür eine spezielle Syntax haben. Z.B.
> würde ein Datum folgendermaßen initialisiert:
> d = DATE("6.11.2006");
> Und folgendes würde ein Integer-Typ festlegen:
> i = 1;
> Während eine Float so aussehen würde:
> f = 1.0;
>
> Gibt es eine Sprache die solch eine "Initialisierungs-Typisierung"
Ich finde es nicht zuviel verlangt, den Typ der kontinierlich für eine
Variable verwendet wird, auch bei der Deklaration anzugeben.
Eine Zumutung sind dagegen so redundante Deklarationen und Initialisierungen
wie in Java:
FileWriter aVar = new FileWriter(filename,...)
Das könnte man mit einem Schlüsselwort wie AD (=as declared) vermeiden:
FileWriter aVar = new AD(filename,...)
Daran gewöhnt man sich schnell und man weiter die Möglichkeit, aVar mit
einem Unterobjekt zu initialisieren:
FileWriter aVar = new TextFileWriter(filename,...)
Was meint Ihr dazu?

Viele Grüße, Ludwig

Re: Frage zu untypisierter Sprache

am 26.11.2006 16:49:41 von Elcaro Nosille

Ludwig Maetzke schrieb:

> Ich finde es nicht zuviel verlangt, den Typ der kontinierlich für
> eine Variable verwendet wird, auch bei der Deklaration anzugeben.

Ne, aber das heißt ja noch lange nicht, daß das so sein muss.

> Eine Zumutung sind dagegen so redundante Deklarationen und
> Initialisierungen wie in Java:
> FileWriter aVar = new FileWriter(filename,...)
> Das könnte man mit einem Schlüsselwort wie AD (=as declared) vermeiden:
> FileWriter aVar = new AD(filename,...)

Das ist eine völlig unwesentliche Größe mehr an Tipparbeit für einen
Lesbarkeitsvorteil.

> Daran gewöhnt man sich schnell und man weiter die Möglichkeit, aVar mit
> einem Unterobjekt zu initialisieren:
> FileWriter aVar = new TextFileWriter(filename,...)

Äh, das geht ja gerade nicht wenn man die Möglichkeit nimmt den konkreten
Typen zu nennen wie oben von dir gesagt.

Re: Frage zu untypisierter Sprache

am 06.02.2007 20:42:34 von Nicolai Waniek

Elcaro Nosille wrote:
> Ich hatte da mal eine Idee bzgl untypisierter Sprachen. Und zwar ist
> es ja so, daß man einer Variablen in einer untypisierten Sprache in
> Folge beliebige Typen zuweisen kann. Also z.B. erstmal String, dann
> Integer, dann Float (daß man das alles intern per Zuweisungs-Konver-
> sion als String speichern könnte sei mal ignoriert).
> Das gefällt mir nicht (mann bin ich pedantisch) und da dachte ich
> mir folgendes: Der Typ einer Variablen wird bei der ersten Zuweiung
> gesetzt. Wenn ich etwa in einer fiktiven Sprache folgendes habe:
> str = "blabla";
> Dann kann ich dem nicht danach ein Float zuweisen:
> str = 1.0;
> So daß der Typ für den ganzen Sichtbarkeitsbereich der Variablen
> konstant bleibt.

Hallo,
Ich hab mir den Thread nicht durchgelesen und habe keine Ahnung, ob es
schon erwähnt wurde, aber D (www.digitalmars.com/d/) hat so etwas ähnliches.


int gimmeGimmeGIMME()
{
return 10;
}


void main(char[][] args)
{
auto w00t = gimmeGimmeGIMME();

// das folgende klappt nicht:
w00t = "hello world";

return 0;
}



Grüße