Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 14. Nov 2018 6:02

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Paradigmen
BeitragVerfasst: 10. Jan 2002 5:46 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi!

Ich habe mal versucht, die Paradigmen der Programmierung in meinem Kopf etwas zu ordnen, herausgekommen ist <!--http--><a href="http://www.8ung.at/shell/paradigma.jpeg" target="_blank">dieses Diagramm</a><!--url-->. Kann man das so stehen lassen? Was würdet ihr anders machen? Habe ich etwa gar eine Sprache falsch eingeordnet? (Kenne gar nicht alle genannten näher.)

Cheers,
GNU/Wolfgang


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 10. Jan 2002 13:40 
Hi!

Du hast leider die wichtigste aller Programmiersprachen vergessen -> Brainfuck <- ! Es gibt wohl sons keine Sprache mehr die mit nur 8 Befehlen zurecht kommt und vollkommen unlesbar ist ;). Ich weiß leider aber nicht wie man Brainfuck da ncoh einordnen könnte ;). Schau dir einfach mal http://koeln.ccc.de/projekte/brainfuck/ an!

CU Dom

>+++++++[<++++++++++++>-]<+++.>+++[<++++++>-]<.+++..-.++++.--..-
-------.+++++++++.>++++++[<------------->-]<.>++++++++[<++++++++
+>-]<+.+++++.>++++++[<------------->-]<.>++++++[<+++++++++++>-]<
++.+.+++++++++++++.>+++++++++[<--------->-]<-.>+++++++[<++++++++
++++>-]<+++.--.-------.----------.+.+++++++++++++.>++++[<---->-]
<.-.>++++[<++++>-]<+.-------------.+++++++++.>++++++[<----------
--->-]<.>+++++[<+++++++++++>-]<.++++++++++++++.+++++++.++++++++.
>+++++++[<------------>-]<.>++++++[<+++++++++++>-]<++.+.++++++++
+++++.>+++++++++[<--------->-]<-.>++++++[<++++++++>-]<.>++++[<++
++++++>-]<++.---.--------.+++++++++++.>++++[<---->-]<-.+++++++++
+++..----.----.+++++++++++++.+.---.++.>++++[<---->-]<-.++.+++++.
---.>++++++[<----------->-]<---.>++++[<++++++++>-]<++.>++++++[<+
+++++++>-]<.>++++[<---->-]<-.++++++++.+++++.--------.+++++++++++
++++.>+++[<------>-]<.++++++++.>++++++++[<------------>-]<-.


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 10. Jan 2002 18:20 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi!

Ich kenne Brainfuck, und kann diese Sprache auch problemlos einordnen. Sie gehört zu den sog. esoterischen Programmiersprachen, die allerdings keine praktische Bedeutung haben. Wichtiger wären da die Assemblersprachen.

Cheers,
GNU/Wolfgang


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 10. Jan 2002 19:09 
Offline
Pro-Linux
Benutzeravatar

Registriert: 15. Aug 1999 16:59
Beiträge: 3236
Wohnort: Bruchsal
Hi,

so auf Anhieb vermisse ich nur die deklarativen Sprachen wie Prolog und CML2 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Diese sind weder funktional noch imperativ.

Gruß,
hjb

_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 11. Jan 2002 0:23 
Offline

Registriert: 22. Jan 2001 1:37
Beiträge: 78
Wohnort: 42369 Wuppertal
Wo ihr gerade schonmal dabei seid:
Weiß zufällig jemand eine gute Seite, die die grundlegenden Unterschiede zwischen imperativen, deklarativen und funktionalen Sprachen erklärt? Womöglich mit Code-Beispielen, z.B. das selbe Problem einmal imperativ und einmal funktional gelöst, oder so...

Danke,
Dominic


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 11. Jan 2002 2:44 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi Dominic!

Aber klar doch: http://www.uni-forst.gwdg.de/~wkurth/paradig.html

Was dort Kontrollflussparadigma genannt wird, entspricht dem imperativen Paradigma und was hier deklarativ genannt wird heißt dort Fallregel-Paradigma.

Cheers,
GNU/Wolfgang


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 11. Jan 2002 14:31 
Offline

Registriert: 22. Jan 2001 1:37
Beiträge: 78
Wohnort: 42369 Wuppertal
Danke!

Aber nochwas:
<blockquote><hr>Die Verwendung eines bestimmten Programmier-Paradigmas legt noch nicht die Wahl der Programmiersprache fest!
Beispiel: Objektorientierte Programmierung auch in Fortran möglich (gr. Aufwand!), prozedurale Elemente auch in C++ usw.<hr></blockquote>

Ok, das ist mir soweit klar... Aber hätte vielleicht mal jemand, rein interessehalber, ein Beispiel für funktionalen C-Code? Ich weiß nicht ganz, was ich mir darunter vorstellen sollte... (Ob es sinnvoll wäre, in C funktional zu programmieren, wäre natürlich zu bezweifeln).

Dominic


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 11. Jan 2002 17:14 
Hi Dominic!

Ich _denke_ funktionaler C-Code ist ganz "normaler" C-Code z.B.:

int a = 4 + 3;
printf( "Ergebnis: %i
", a);

CU Dom


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 11. Jan 2002 17:59 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi!

> Ich _denke_ funktionaler C-Code ist ganz "normaler" C-Code

Nein.

C ist imperativ (befehlsorientiert) und prozedural, aber nicht funktional, wie auch in meinem Diagramm zu sehen ist. Funktionale Sprachen sind solche wie LISP, Scheme, Haskell und ML.

Cheers,
GNU/Wolfgang

PS: %i? Muss das nicht %d sein?


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 12. Jan 2002 0:43 
Offline

Registriert: 22. Jan 2001 1:37
Beiträge: 78
Wohnort: 42369 Wuppertal
Jep, C ist natürlich ein klassisches Beispiel für eine imperative Sprache. Aber trotzdem ist es ja möglich, in C beispielsweise objektorientiert zu programmieren (siehe GTK+). Die Schwierigkeit dabei ist nur, daß C - im Gegensatz zu C++ - die nötige Syntax dazu nicht von Haus aus mitbringt, der Code kann also mitunter etwas umständlich werden.
Aber wenn es stimmt, daß man, wenn auch mit relativ großem Aufwand, in jeder Sprache nach jedem Paradigma programmieren kann, sollte also auch funktionaler C-Code möglich sein. Meine Frage ist nur, wie das aussehen könnte. Wie würde z.B. ein Scheme-Programm aussehen, wenn man es, unter Beibehaltung der Programmstruktur, nach C übersetzen würde? (Das das in der Praxis nicht sinnvoll wäre ist klar).

Dominic


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 12. Jan 2002 1:24 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi Dominic!

Funktional in C zu programmieren ist wohl möglich, indem man dem funktionalen Code entsprechende Datenstrukturen definiert und diese Datenstrukturen von einem kleinen, imperativen Teil verarbeiten lässt. Oder ist das geschummelt?

Außerdem gibt es ja noch die GNU C Erweiterungen:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
int i = { int x;
if (foo == Qnil)
x = Qnil
else
x = { int y;
do {
y = bar (foo++);
} while (y == Qnil);
y; } x; };
</font><hr></pre></blockquote>

Kann man das als funktional gelten lassen? Bin da ja kein Experte, aber ich finde das sehr Scheme-like. <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Aber im Ernst: Ich glaube nicht so recht, dass man wirklich mit jeder Sprache nach ausnahmslos jedem Schema programmieren kann. Das widerspricht auch keinesfalls der Aussage, dass man durch die Sprache noch nicht auf ein bestimmtes Paradigma festgelegt ist.

Cheers,
GNU/Wolfgang


Nach oben
   
 Betreff des Beitrags: Re: Paradigmen
BeitragVerfasst: 12. Jan 2002 1:41 
Offline

Registriert: 16. Aug 1999 6:44
Beiträge: 597
Wohnort: Lorsch (Südhessen)
Hi!

Ok, und jetzt nochmal Code, der nicht nur funktional ist, sondern auch funktioniert. <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
int i = ({ int x;
if (foo == Qnil)
x = Qnil;
else
x = ({ int y;
do {
y = bar (foo++);
} while (y == Qnil);
y; }); x; });
</font><hr></pre></blockquote>

Wenn jemand sehr daran interessiert ist, kann er sich auch mal den C-Teil des GNU Emacs anschauen, der verwendet Makros, um funktionalen Code zu ermöglichen, wenn ich mich recht erinnere.

Cheers,
GNU/Wolfgang


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de