PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fortress


Xmas
2006-04-09, 23:23:12
Ich bin durch einen Thread im B3D-Forum darauf gestoßen und habe mir die Spezifikation eben durchgelesen: es geht um Fortress, eine Programmiersprache von Sun, die sich besonders gut für mathematische bzw. naturwissenschaftliche Programmierung eignen soll. Auf den ersten Blick fällt besonders die ausführliche Benutzung von Unicode für Operatoren und Bezeichner auf, aber es steckt doch deutlich mehr dahinter, wie z.B. implizit parallele Schleifen, Transaktionen, Dimensionen und Einheiten, Möglichkeit der Erweiterung für Domain Specific Languages, usw.

http://research.sun.com/projects/plrg/fortress0866.pdf

Was haltet ihr davon?

Trap
2006-04-09, 23:54:33
Die haben ja überall geklaut: The JavaTM Programming Language [5],
NextGen [6], Scala [20], Eiffel [16], Self [1], Standard ML [17], Objective Caml [14], Haskell [22], and Scheme [13].

Ich bin mir nicht sicher ob da etwas benutzbares rauskommt, ist aber nicht ganz uninteressant.

Xmas
2006-04-09, 23:59:56
Alle modernen Programmiersprachen haben von ihren Vorgängern geklaut. Aber es gibt hier durchaus auch neue (oder zumindest unabhängig entwickelte) Ansätze.


Gebrochene Dimensionen fehlen bei den Einheiten, welche Einheit hat sqrt(1 meter)?
Nein, rationale Dimensionen sind vorhanden. Aber sqrt(1 m) gibt es nicht.

Pinoccio
2006-04-10, 00:00:07
Also alle 272 Seiten hab ich natürlich noch nicht durch, aber bis Seite 30 überflogen. Das klingt schonmal sehr interessant. Die Möglichkeiten, so mit Zahlen und Bezeichnern umzugehen sorgen auf jedenfall für eine bessere Lesbarkeit des Codes und damit für weniger Fehler. Und eine dem Problem angepasste Frmulierung vermute ich, da man auch sehr schön bei physikalischen Rechungen die Einheiten immer und überall berücksichtigen kann. Eine erwarteten Längenangabe von 1,0034 km² sehe ich schon an, daß sie nicht passt.

Was die im wissenschaftlichen Bereich auch sehr wichtige Geschwindigkeit bei der Ausführung betrifft, wird man sehen müssen.

Letzendlich hängt es ja auch immer am konkreten Problem, für einige Bereiche wird Fortress sicher eine interessante Sache.

Gebrochene Dimensionen fehlen bei den Einheiten, welche Einheit hat sqrt(1 meter)?Ich bin nicht durch, aber das sollte dann schon gehen, selbst wenn es physikalisch nicht unbedingt sinnvoll erscheint. ;-)

mfg Sebastian

Trap
2006-04-10, 00:05:41
Nein, rationale Dimensionen sind vorhanden. Aber sqrt(1 m) gibt es nicht.
Was meinst du mit sqrt(1 m) gibt es nicht?

Xmas
2006-04-10, 14:37:45
Ich meine damit dass m^(1/2) ziemlich sinnlos ist.

Trap
2006-04-10, 15:03:50
Wenn man keine Unterstützung für gebrochene Dimensionen hat dürfte es aber ziemlich schwierig werden
sqrt(1m)^2==1m
und
sqrt(1m^2)==1m
innerhalb des Einheiten und Dimensionssystems zu rechnen.

Trotzdem ist das natürlich besser als garkeine Dimensions- und Einheitenunterstützung.

Xmas
2006-04-10, 15:10:50
Ja, um dies zu erreichen müsste man wohl den Einheiten einen Exponenten vom Typ Q zuordnen. Wäre wohl von der Typangabe zu kompliziert geworden.

HellHorse
2006-04-10, 17:42:32
Ich habe etwas "Angst", dass man versucht Syntax ans Problem zu werfen. Man hat ja bei C++ gesehen wozu das führt. Auch sieht es sehr nach Featurecreep aus und sie versuchen jedes mögliche Problem zu lösen und es allen Recht zu machen. Aber wenigstens haben sie Traits ;)

Einheiten gehen schon jetzt sehr gut, vorausgesetzt man hat eine mächtige und flexible Syntax (!= komplex oder kompliziert)
http://portal.acm.org/citation.cfm?id=1094964&coll=ACM&dl=ACM&CFID=72196433&CFTOKEN=8952623
distance := 1 meter + 50 centimeters.
distance := 3/2 meter.
distance := 100 centimeters + 50 centimeters.
distance := 150 centimeters
initialCapital := 100 dollars.
interestRate := 0.1 / 1 year.
investmentTime := 6 months.
finalCapital := initialCapital * (1 + (interestRate * investmentTime)).
Wenn man natürlich eine scheiss Syntax hat, muss man das hart in die Sprache reincodieren.

Die Formatierungsregeln für die Identifiers: :ugly: Aber wenigstens scheinen sie im Gegenstatz zu Java Zahlen richtig hinzubekommen.

Xmas
2006-04-10, 20:56:45
Wenn man natürlich eine scheiss Syntax hat, muss man das hart in die Sprache reincodieren.
Fortress hat IMO eine recht gut lesbare Syntax. Natürlich vor allem dann, wenn man etwas mathematischen Hintergrund hat. Einige Kritikpunkte habe ich aber doch.

Wie überprüft man in deinem Beispiel dass die richtige Einheit herauskommt?

Die Formatierungsregeln für die Identifiers: :ugly: Aber wenigstens scheinen sie im Gegenstatz zu Java Zahlen richtig hinzubekommen.
Ja, die Formatierungsregeln sind albern, die Formatierung selbst aber gut. Nur geht mir das nicht weit genug. Zahlen sind ok, aber bei den Integern hätte ich mir noch mehr bezüglich der Bereichsprüfung gewünscht.