Vorstellung Ocaml

rudy

aint no stoppin us now
Hallo Programmierspracheninteresierte :)

ich möchte euch mal eine sehr interessante Alternative zu den bekannten Mainstreamsprachen vorstellen näherbringen und zwar Ocaml.....

In den Ports zu finden unter >
http://www.freebsd.org/cgi/ports.cgi?query=ocaml&stype=all&sektion=all

Meine Bitte gleich zu Anfang bitte keinen Glaubenskrieg sondern einfach sich mal mit dieser Sprache beschäftigen.

Kurzinformation

http://de.wikipedia.org/wiki/Objective_CAML

Tutorials

http://www.ocaml-tutorial.org/

http://caml.inria.fr/pub/docs/oreilly-book/ocaml-ora-book.pdf


MFG
 
Zuletzt bearbeitet:
Du bist nicht zufällig informatik-erstsemesterstudent der TU München, die werden oder wurden damit vergewohltätigt... :)
 
Du bist nicht zufällig informatik-erstsemesterstudent der TU München, die werden oder wurden damit vergewohltätigt... :)

Hallo :)

ich wollte ich wär noch mal so jung :D aber finde es schon mal klasse das die Studenten mal was anderes als Java - C# oder C und alle sene Nachfolger nahe gebracht bekommen.

Mit Ocaml kannst Du alles was Du mit o.g.Sprachen auch kannst :)

MFG
 
soll ich dir jetzt alle Programmiersprachen aufzählen?

das wäre ja ne echte Fleissübung, bei der Vielzahl der da in Frage kommenden Sprachen mal exemplarisch sei hier nur einmal Pascal angeführt.

Aber das war ja nicht die Intention meines Threads mir geht es primär darum auch mal über den Tellerrand zu schauen und weniger bekannte Alternativen aufzuzeigen und sich damit zu beschäftigen.

@ Yamagi

wenn Du mir gestattest möchte ich Dir hier mit Wikipedia antworten denn eine einfache Antwort gibt es hier nicht >

http://de.wikipedia.org/wiki/Turing-Vollständigkeit

Da Deine gewählte Begrifflichkeit sehr kontrovers diskutiert wird! Stichwort HTML und JavaScript
( Abschnitt http://de.wikipedia.org/wiki/Turing-Vollständigkeit#Beispiele )

In diesem Kontext möchte ich hier nur einmal die Gnome Oberfläche anführen und eine kaum beachtete Diskussion hier die Forderung der Befürworter von JavaScript die damit begründet wird, das JavaScript mittlerweile erwachsen sei!

So ähnliches lief ja auch bei es sei mir mal gestattet Windows Stichworte WPF oder ergänzend HTA und wurde realisiert
http://www.html-world.de/program/hta_ov.php
http://de.wikipedia.org/wiki/Windows_Presentation_Foundation

Lektüre bzw.Informationen zur Gnome Diskussion

http://derstandard.at/1276413604773...-soll-den-GNOME-File-Manager-schlanker-machen

http://www.golem.de/1008/77367.html

http://www.golem.de/1007/76872.html

Denke aber das wäre ein Terminus für einen vollständig neuen Thread, hier geht es mir primär erst mal um die vollwertige Alternative Ocaml die leider ein Schattendasein fristet, unverständlicherweise da diese auf der Unix Plattforn sehr gut dokumentiert und aus den Ports zu beziehen ist!

Hinzu kommt noch das diese Sprache Plattformunabhängig ist und somit weitere Vorteile erschliesst Infos hierzu

http://de.wikipedia.org/wiki/Plattformunabhängigkeit

MFG
 
Zuletzt bearbeitet:
Aber das war ja nicht die Intention meines Threads mir geht es primär darum auch mal über den Tellerrand zu schauen und weniger bekannte Alternativen aufzuzeigen und sich damit zu beschäftigen.

Und Du glaubst, dass es wirklich Leute gibt, die sich fuer Programmiersprachen interessieren, aber gleichzeitig noch nie etwas von ocaml gehoert haben?

@ Yamagi

wenn Du mir gestattest möchte ich Dir hier mit Wikipedia antworten denn eine einfache Antwort gibt es hier nicht >

Doch.

http://de.wikipedia.org/wiki/Turing-Vollständigkeit

Da Deine gewählte Begrifflichkeit sehr kontrovers diskutiert wird! Stichwort HTML und JavaScript

Es ist mir ehrlich gesagt, was da auf Wikipedia so steht. Deshalb habe ich mir das jetzt auch nicht durchgelesen. Wenn die aber tatsaechlich HTML im Zusammenhang mit Turing-Completeness bringen, dann sollten sie mal eine finale Loeschdiskussion fuehren.
 
Und Du glaubst, dass es wirklich Leute gibt, die sich fuer Programmiersprachen interessieren, aber gleichzeitig noch nie etwas von ocaml gehoert haben?

Das hake ich jetzt mal als Unterstellung deinerseits ab, mit keiner Silbe habe ich das so geschrieben und möchte das so auch nicht verstanden wissen.

Doch.

Es ist mir ehrlich gesagt, was da auf Wikipedia so steht. Deshalb habe ich mir das jetzt auch nicht durchgelesen. Wenn die aber tatsaechlich HTML im Zusammenhang mit Turing-Completeness bringen, dann sollten sie mal eine finale Loeschdiskussion fuehren.

Nun sei es drum ich zitiere hier mal aus Wikipedia Artikel Turing-Vollständigkeit Abschnitt Beispiele

/ Snip Turing-Vollständig /

Die gängigen Programmiersprachen sind Turing-vollständig. Dies schließt konventionelle prozedurale Sprachen wie C und objekt-orientierte Sprachen wie C++ und Java ein. Auch Sprachen, die nach weniger geläufigen Paradigmen entworfen wurden, unter anderem funktionale Programmiersprachen wie LISP und Haskell und Sprachen für Logikprogrammierung wie Prolog sind Turing-vollständig.

/ Snap Nicht Turing -Vollständig /

Beispiele für nicht Turing-vollständige Programmier-Sprachen zu finden, fällt Fachleuten schwer, da diese die Sprachen nach Funktionalität filtern und strukturelle Sprachen und rein prozess-orientierte von vorn herein als sehr eingeschränkt erachten und diese gar nicht erst in die Betrachtung aufnehmen. Ein häufig diskutiertes Beispiel sind SGML-Dialekte und -Derivate wie bspw. das Internet-Nutzern zumindest dem Namen und der Nutzung nach bekannte HTML (HyperText Markup Language); Diese Struktur-Sprache ist bei Einsatz aller gegebenen Attribute durchaus in der Lage universelle Beschreibungen für Prozesse zu halten und auch die zeit-diskrete Steuerung, bzw. die zeitliche Abfolge lässt sich mit Hilfe der Relationalen beschreiben. Alle Instrumentale die nötig wären sind im Sprachschatz vorhanden. Einziges Hindernis zur Aufnahme in die Reihe der in diesem Artikel diskutierten Sprachen stellt die Tatsache dar, dass HTML in sich nicht aktiv sein kann; erst in Ergänzung um eine aktive Komponente (bspw. JavaScript) oder durch den ausführenden Browser in welchem das Konstrukt verarbeitet wird, ergibt sich die Steuerbarkeit und verfolgbare zeitliche und hierarchische Abhängigkeit. Da HTML jedoch vor allem für spezielle Segmente wie Muster-Bibliotheken, Platzhalter für dynamisch erzeugte Inhalte, als passive Listung für im Browser vorgezeichnete Routinen, für Formulare und zur Kapselung von Prozessen eingesetzter Scripte genutzt wird, ist HTML eher wie die zuvor an zweiter Stelle erwähnten prozess-orientierten Sprachen, nämlich die Stapel-Verarbeitungen und Stacking-Coda zu betrachten.

MFG
 
Zuletzt bearbeitet:
OK, ich sehe hier jetzt nicht die Kontroverse. Wenn etwas nicht Touring vollständig ist, ist es für mich auch keine Programmiersprache. Das Zeug über HTML ist offensichtlich wichtigtuerisches BlaBla, ich könnte auch einen 10-Seitigen Artikel darüber schreiben, dass der Himmel bei Sonnenschein blau ist (was de-fakto weniger selbstverständlich ist).

Jetzt kommt meine Botschaft an all' jene, die das hier alles gar nicht interessiert:
Warum zur Hölle antwortet ihr darauf? Der Thread wäre ohne euch längst unbeantwortet ins Vergessen geraten. Ihr seid die Trolle.
 
Hallo Programmierspracheninteresierte :)

ich möchte euch mal eine sehr interessante Alternative zu den bekannten Mainstreamsprachen vorstellen näherbringen und zwar Ocaml.....

Interessante Sprache. Dient diese Sprache nur zu Lehrzwecken, oder welche bekannten Anwendungen wurden damit entwickelt?

JueDan
 
Interessante Sprache. Dient diese Sprache nur zu Lehrzwecken, oder welche bekannten Anwendungen wurden damit entwickelt?

JueDan

Hallo Jürgen :)

ja stimmt es ist eine sehr schöne Sprache mit vielen Möglichkeiten. Eine der bekanntesten Anwendungen die mit Ocaml entwickelt und umgesetzt wurden ist ML Donkey ein P2P -Client.

Also es ist nicht nur eine Lehrsprache, was auch noch anzumerken wäre ist das Modulsystem dieser Sprache ähnlich Packages von Java.

MFG
 
Hallo:)

Hallo Jürgen :)

ja stimmt es ist eine sehr schöne Sprache mit vielen Möglichkeiten. Eine der bekanntesten Anwendungen die mit Ocaml entwickelt und umgesetzt wurden ist ML Donkey ein P2P -Client.

Also es ist nicht nur eine Lehrsprache, was auch noch anzumerken wäre ist das Modulsystem dieser Sprache ähnlich Packages von Java.

MFG

Hm, ML-Donkey ist jetzt nicht gerade die Referenzanwendung. Gibt es da bekannte große Projekte. Tante Google hat nix dazu gefunden.

Ich kenne aus meiner Studienzeit noch die Sprache M, die ein Professor von der Bundeswehr-UNI entwickelt hatte und an der LMU darauf seine Vorlesungen aufgebaut hat. War interessant, hat bloß keiner verstanden :D

JueDan
 
Hallo:)



Hm, ML-Donkey ist jetzt nicht gerade die Referenzanwendung. Gibt es da bekannte große Projekte. Tante Google hat nix dazu gefunden.

Ich kenne aus meiner Studienzeit noch die Sprache M, die ein Professor von der Bundeswehr-UNI entwickelt hatte und an der LMU darauf seine Vorlesungen aufgebaut hat. War interessant, hat bloß keiner verstanden :D

JueDan

Hallo Jürgen,

wenn Dir das Apache Projekt groß genug ist hier kommt in letzter Zeit etwa 2 Jahre aber nagele mich jetzt nicht fest auch Ocaml zum Einsatz...

Dann ich weiß ja das Du eine Schwäche für Perl hast :)

Code:
@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{
@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord
($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print

Dieser Code ist doch seit 2000 Kult denn er gibt folgendes aus „Just another Perl / Unix hacker“

Im Jahre 2008 gab es ein Programmierwettbewerb

http://www.linux-magazin.de/Heft-Abo/Ausgaben/2008/12/Vom-Thron-gestuerzt

MFG
 
Zuletzt bearbeitet:
Code:
"\nrekcah xinU / lreP rehtona tsuJ"

Wer lesen kann ist klar im vorteil :P ziemlich umständlicher code für ein einfaches umdrehen eines strings...
 
Code:
"\nrekcah xinU / lreP rehtona tsuJ"

Wer lesen kann ist klar im vorteil :P ziemlich umständlicher code für ein einfaches umdrehen eines strings...

5. Annual Obfuscated Perl Contest 2. Platz


http://www.foo.be/docs/tpj/issues/vol2_3/tpj0203-0012.html

der allererste!

MFG :)

Dann etwas Humor an dieser Stelle >

we often joke that a camel is a horse designed by a committee, but if you think about it, the camel is pretty well adapted for life in the desert. The camel has evolved to be relatively self-sufficient. On the other hand, the camel has not evolved to smell good. Neither has Perl. (Larry Wall: über das Kamel als Perl-Maskottchen)

(… wir witzeln oft, dass ein Kamel ein Pferd ist, das von einem Komitee entworfen wurde. Aber wenn man darüber nachdenkt, ist das Kamel ziemlich gut an das Leben in der Wüste angepasst. Das Kamel hat sich dahin entwickelt, autark zu sein. Andererseits hat es sich nicht dazu entwickelt, gut zu riechen. Perl auch nicht.)
 
Zuletzt bearbeitet:
Nun sei es drum ich zitiere hier mal aus Wikipedia Artikel Turing-Vollständigkeit Abschnitt Beispiele

...

/ Snap Nicht Turing -Vollständig /

Beispiele für nicht Turing-vollständige Programmier-Sprachen zu finden, fällt Fachleuten schwer, da diese die Sprachen nach Funktionalität filtern und strukturelle Sprachen und rein prozess-orientierte von vorn herein als sehr eingeschränkt erachten und diese gar nicht erst in die Betrachtung aufnehmen. Ein häufig diskutiertes Beispiel sind SGML-Dialekte und -Derivate wie bspw. das Internet-Nutzern zumindest dem Namen und der Nutzung nach bekannte HTML (HyperText Markup Language);
....

Oh jeh, jetzt hast Du mich tatsaechlich dazu gebracht, mir demnaechst mal die entsprechende Seite auf Wikipedia zur Brust zu nehmen ;-)

Ich will die Diskussion hier nicht breitwalzen (weil's nach Wikipedia gehoert), aber wer HTML, SGML, XML etc. als Programmiersprachen bezeichnet, hat irgendwas verpeilt. (JavaScript oder meinetwegen auf XSLT sind natuerlich schon Programmiersprachen, aber die haben erstmal so nichts substantielles mit HTML bzw. XML zu tun).

Mal schaun, wenn ich kommendes Wochenende Zeit habe, werde ich da zumindest mal auf der Diskussionsseite meinen Senf ablassen...
 
ja stimmt es ist eine sehr schöne Sprache mit vielen Möglichkeiten. Eine der bekanntesten Anwendungen die mit Ocaml entwickelt und umgesetzt wurden ist ML Donkey ein P2P -Client.

Dann gibt's noch unison (habe ich gerade in meiner Faulheit aus dem Portstree gegrept), aber ich weiss nicht wie bekannt das ist.

Also es ist nicht nur eine Lehrsprache,

Ich glaube sowieso nicht, dass die ganzen moderneren funktionalen Sprachen wirklich als Lehrsprachen gedacht sind; das sind eher "Forschungssprachen", bei denen es damals (in den 80ern und 90ern) darum ging, Konzepte wie Graphreduktion effizient zu implementieren, nachzuweisen, dass Typinferenz wirklich funktioniert oder dass (bei nicht-strikten Sprachen) lazy evaluation nicht teuer sein muss (bzw. nicht so furchtbar teuer, wie man es eigentlich befuerchten wuerde).

Als Lehrsprachen sind ml, ocaml, haskell etc. evtl. sogar schon wieder zu komplex (sagte zumindest mal ein Prof. von mir in den 90ern).

was auch noch anzumerken wäre ist das Modulsystem dieser Sprache ähnlich Packages von Java.

Ist das nicht eher von ML inspiriert? Dann haette es naemlich deutlich mehr Potential als die Packages von Java. In ML sind Module naemlich parametrisierbar (wenn mich meine grauen Zellen nicht komplett im Stich lassen).

Ein mit Java Packages vergleichbares System findest Du eher in Haskell (nennt sich dort hierarchical modules).
 
OK, ich sehe hier jetzt nicht die Kontroverse. Wenn etwas nicht Touring vollständig ist, ist es für mich auch keine Programmiersprache.

Touringvollstaendigkeit hat aber nichts mit Programmiersprachen zu tun, sondern eher damit, ob man Tickets, Bahncard, Stadtplaene, Notebook, Zahnbuerste etc. eingepackt hat, bevor man eine Reise antritt.
 
Code:
"\nrekcah xinU / lreP rehtona tsuJ"

Wer lesen kann ist klar im vorteil :P ziemlich umständlicher code für ein einfaches umdrehen eines strings...

Wenn wir sowieso schon beim Thema sind: am besten gefallen mir immer noch der banks vom ioccc 1998 und der schnitzi vom ioccc 2004. (obfuscated Perl kann jeder, obfuscated C ist eine echte Herausforderung).
 
Wenn wir sowieso schon beim Thema sind: am besten gefallen mir immer noch der banks vom ioccc 1998 und der schnitzi vom ioccc 2004. (obfuscated Perl kann jeder, obfuscated C ist eine echte Herausforderung).

Hallo ja Herausforderungen haben mich schon immer inspiriert und besonders der Wettstreit mit anderen, findest Du einige ältere Beiträge von mir hier im Forum dazu....

Aber um Dir zugegeben das lange Suchen zu ersparen war sehr lange in der Demoszene aktiv man könnte sagen von Anfang an und 2011 wird mein letztes Jahr an dem ich mich aktiv beteiligen werde und dann hier

http://awards.scene.org/

Denn das geht an die Substanz und werde auch nicht jünger :)

Habe überwiegend in Assembler und Pascal programmiert auch einige Sachen in C später dann in C++ gemacht aber zu dieser Sprache habe ich eine Hassliebe die bis dato andauert Rosenkrieg trifft es wohl am besten...

Gecodet habe ich etwas über 8 Jahre dann habe ich nur noch Musik in Demos mit Trackern gemacht dazu Tracker und auch XM Player in Assembler programmiert...

Habe überhaupt extrem viel gemacht jede Menge Projekte aber Eigenlob stinkt also belasse ich das mal soweit.

Vielleicht sagt auch dieses Video etwas über mich aus denn wir gehören ungefähr einer Generation an okay er ist nur 5 Jahre älter >

Rob Hubbard - Golden Days of Computer Game Music (Part 1)
http://www.youtube.com/watch?v=DiPdjbsiQqM

Also hatten ähnlichen Zugang zur Programmierung und natürlich der Musik


Ich glaube sowieso nicht, dass die ganzen moderneren funktionalen Sprachen wirklich als Lehrsprachen gedacht sind; das sind eher "Forschungssprachen", bei denen es damals (in den 80ern und 90ern) darum ging, Konzepte wie Graphreduktion effizient zu implementieren, nachzuweisen, dass Typinferenz wirklich funktioniert oder dass (bei nicht-strikten Sprachen) lazy evaluation nicht teuer sein muss (bzw. nicht so furchtbar teuer, wie man es eigentlich befuerchten wuerde).

Als Lehrsprachen sind ml, ocaml, haskell etc. evtl. sogar schon wieder zu komplex (sagte zumindest mal ein Prof. von mir in den 90ern).

< Zitat Rudy: />
was auch noch anzumerken wäre ist das Modulsystem dieser Sprache ähnlich Packages von Java.
< />

Ist das nicht eher von ML inspiriert? Dann haette es naemlich deutlich mehr Potential als die Packages von Java. In ML sind Module naemlich parametrisierbar (wenn mich meine grauen Zellen nicht komplett im Stich lassen).

Ein mit Java Packages vergleichbares System findest Du eher in Haskell (nennt sich dort hierarchical modules).

Da stimme ich Dir zu ich wollte halt mal einen Vergleich ziehen und das hätte ich wohl berücksichtigen sollen und da ich in letzter Zeit sehr viel in Java gemacht habe gut war das nahe liegend.

Aber Danke für Deine Korrektur und Ergänzung im Netz habe ich eine über hundert Seiten starke Dokumentation und Abhandlung zu genau Deinen Richtigstellungen gefunden sehr lesenswert

www.ps.uni-saarland.de/Publications/.../Schneider_2000.pdf


Dann es sei mir gestattet die hohe Kunst der Programmierung

Demoscene: "Chaos Theory" by Conspiracy (HD quality, widescreen)

http://www.youtube.com/watch?v=oOKE8vcf9w4

Fairlight & CNCD & Orange - Media Error (HD)

http://www.youtube.com/watch?v=lxER7VXewYk&feature=related


MFG
 
Hallo Rudi,

Hallo Jürgen,

wenn Dir das Apache Projekt groß genug ist hier kommt in letzter Zeit etwa 2 Jahre aber nagele mich jetzt nicht fest auch Ocaml zum Einsatz...

Dann ich weiß ja das Du eine Schwäche für Perl hast :)

Code:
@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{
@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord
($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print

Also, ich bin ja sehr enttäuscht von Dir, mir da so ein Perl-Skript zu präsentieren. Wenn Du die Sprache Ocaml schon vorstelltst, dann hätte ich ja schon erwartet, dass Du hier ein Ocaml-Skript zeigst, erklärst und Vergleiche zu Perl anstellst:D

Jürgen
 
Zurück
Oben