AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

"C" versus Pascal

Ein Thema von ATS3788 · begonnen am 5. Jan 2014 · letzter Beitrag vom 8. Jan 2014
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

"C" versus Pascal

  Alt 5. Jan 2014, 08:46
Hallo
Ich lerne zu Zeit "C" Nicht C++, wegen µC Programierung.
Also ich verstehe nicht warum "C" die Erfolgs Sprache wurde.
so was wie "i++" oder "+=" oder Bit Manipulation hätte man
auch in Delphi umsetzen können. OK der Header das ist eine
tolles feature. Nur Pascal ist einfach eleganter,
alleine nur die String Behandlung in "C"
Mich würde interessieren was eure Erfahrung zu meiner Frage
"C" versus Pascal
ist.

PS
Versteht mich nicht falsch "C" ist ein tolles Werkzeug für
µC "Pics"
Martin MIchael
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: "C" versus Pascal

  Alt 5. Jan 2014, 09:18
Also (das ist nur meine persönliche Kenntnis und Meinung) ist C (wie auch einige andere Programmiersprachen) eigentlich nur ein Unfall der Geschichte. C hätte es gar nicht geben dürfen und es war nicht geplant (ähnlich wie Pascal, das eigentlich nur als Lehrsprache konzipiert wurde). Ich weiß es nicht ganz genau, aber vor C soll es A und B gegeben haben. Danach kommt C. Schon die einfache Nummerierung zeigt, dass das eigentlich nicht als etwas erfolgreiches geplant war, sonst hätte man dem Ganzen einen guten Namen gegeben, wie man es auch bei Basic, Pascal, Java usw. tat. So wie ich das mal erfahren habe wollte man eigentlich nur Unix programmieren und es fehlte eine vernünftige Sprache. Pascal gab es noch nicht, Basic (na ja), und Assembler auf Dauer ist ja auch kompliziert. Also bevor man Unix schrieb, hat man sich erst eine Programmiersprache entwickelt. Und weil nicht geplant war, dass Menschen in Zukunft damit zu tun haben werden, hat man es einfach gemacht. Genau so als wenn man eine Funktion auf die Schnelle schreibt und den Variablen so viel aussagekräftige Namen wie - i, a, c, k, tv, ux und q gibt. Es ist ja nicht geplant, dass es jemand anders liest, also gibt man sich auch nicht die Mühe. Das hat man sich auch nicht bei C gemacht. Es sollte nur eine Sprache für den Auftrag werden, die einfacher als Assembler ist aber fast genauso mächtig.

Also wurde schnell etwas zusammengeklopft und ein völlig bedeutungsloses Betriebssystem namens Unix erschaffen. Denn auch das war nicht auf Erfolg konzipiert. Und eigentlich ist es das gewesen. Eine Firma brauchte ein Betriebssystem, also sollte eins geschrieben werden. Man nannte es Unix. Und weil eine passende Programmiersprache fehlte hat man vorher C als vorläufiges Hilfswerkzeug entwickelt.

Nur dann kam etwas womit keiner gerechnet hat - der Erfolg. Und der kam so: entweder war man früherer lockerer drauf oder die Angst vor Raubkopien war noch nicht da, verteilte man Unix auf den Unis zu Studienzwecken. Nutzung war nicht erlaubt (ohne zu bezahlen) aber man durfte es frei studieren. Das hatte noch einen schönen Nebeneffekt - es wurden viele Fehler gefunden, so dass man sie schnell reparieren und Unix wurde dadurch ein richtig stabiles Betriebssystem. Es war fast so wie es heute mit Open Source ist, nur das Unix kein Open Source im eigentliches Sinne war, sondern man nichts dagegen hatte, dass die Studenten es studieren. Das nebenbei die Fehler ausgemerzt wurden, war ein netter Nebenerfolg. Ja, und nun zurück zu C. Da Unix in C geschrieben war und es irgendwann an vielen Unis üblich wurde Unix zu studieren, konnten bald viele Studenten C ganz gut. Und nachdem die fertig mit dem Studium waren, haben sie einfach weiter mit C gemacht.

Also, hätte man gewusst, dass C so ein Erfolg wird, man hätte sich vermutlich mehr Mühe gegeben. Das ist aber wie so oft im Leben, man hat ein Problem in der Firma, man kommt irgendwie nicht in die Ecke ran, wo ständig die Kugelschreiber hin rollen, also holt man sich ein Stöcken vom Sperrmüll auf der Straße. Und dann bleibt es im Büro und entwickelt sich über Jahre zum Universallwerkzeug. Jeder stochert damit in seiner Ecke rum. Und dann sagt man sich - hätte ich das gewusst, dann hätte ich mir einen guten Stock bei Obi besorgt. Stadtessen haben wir nun eine abgebrochene Querlatte von einem Schrank hier.

Also das ist meine Geschichte zu C.

Geändert von Popov ( 5. Jan 2014 um 09:23 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: "C" versus Pascal

  Alt 5. Jan 2014, 09:44
Zitat:
Brian and I had just started working with an early release of Pascal from Professor Nichlaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power.

[...]

When we found others were actually trying to create real programs with A, we quickly added additional cryptic features and evolved into B, BCPL and finally C. We stopped when we got a clean compile on the following syntax:
Code:
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
http://www.gnu.org/fun/jokes/unix-hoax.html
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: "C" versus Pascal

  Alt 5. Jan 2014, 10:20
Hatte zufälligerweise gerade vor ein paar Tagen noch einen Text von Niklaus Wirth gelesen, mit einem interessanten Seitenhieb auf C:

Zitat von Niklaus Wirth:
This new compiler, written in Pascal, could not be tested during development, because no Pascal compiler was available yet. The whole program for compiling at least a very substantial subset of Pascal, had to be written without feedback from testing. This was an exercise that was extremely healthy, and it would be even more so today, in the era of quick trial and interactive error correction. After we believed that the compiler was “complete”, one member of the team was banned to his home to translate the program into a syntax-sugared, low-level language, for which a compiler was available. He returned after two weeks of intensive labor, and a few days later the first test programs were compiled correctly by the compiler written in Pascal. The exercise of conscientious programming proved to have been extremely valuable. Never contain programs so few bugs, as when no debugging tools are available!

Thereafter, new versions, handling more and more of Pascal’s constructs, and producing more and more refined code, could be obtained by bootstrapping. Immediately after the first bootstrap, we discarded the translation written in the auxiliary language. Its character had been much alike that of the ominous low-level language C, published a year later. After this experience, it was hard to understand that the software engineering community did not recognize the benefits of adopting a high-level, type-safe language instead of C.

Geändert von Namenloser ( 5. Jan 2014 um 10:22 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: "C" versus Pascal

  Alt 5. Jan 2014, 10:38
Zunächst einmal: Das was Popov in den Tiefen seines Gedächtnisses herausgefischt hat, stimmt soweit (jedenfalls, wenn ich das mit dem Zeugs korreliere, was sich in den Niederungen meines Gedächtnisses befindet).

'C' ist ein etwas besserer Macroassembler: Eine Zuweisung hinterlässt das Ergebnis meist auf dem Stack und so ist auch 'a = b+c' ein Ausdruck, mit dem weiter gerarbeitet werden kann: 'if x == a=b+c'. Praktisch. Damit war in den frühen 70er Jahren eine Programmiersprache/Makroassembler entwickelt, mit dem sich sehr kompakte und schnelle Programme schreiben ließen.

Kernighan und Ritchie haben bei Unix das Ziel verfolgt, das sich das OS ruhig verhält und den Spezialisten, die es bedienen, so wenig wie möglich auf den Sack geht. Wenn also etwas funktioniert, wollten sie kein 'Operation Successful' sehen. Ähnlich wurde 'C' konzipiert: Sie viel wie möglich sollte machbar sein und Spezialisten (eben die beiden) wollten mit wenig Zeichen viel ausdrücken: In 'C' kann man sehr kurze Programme schreiben, ohne überflüssigen Schnickschnack wie 'var','then', 'procedure', 'function', 'do', 'begin', 'end' usw. Unlesbarer werden die Programme damit ja nicht.

So und nun meine Theorie: Da die meisten Programmierer Abkürzungsfetischisten sind (anders kann ich mir die bescheuerten Bezeichner 'ptr' 'chr' sowie die ungarische Notation nicht erklären) fanden viele diese Sprache natürlich total cool, denn wer meinen Code nicht versteht, ist eben nicht so cool wie ich. Blöderweise lässt der C-Compiler so ziemlich jeden Murks durchgehen, weswegen extra Lint entwickelt werden musste, das den gröbsten Quark moniert.

Lustig finde ich, das C-Programmierer beinahe zwnghft Abk vw. Alleine dafür gehört C verboten. Oder die Programmierer umgeschult. Auf Gesetzestextautoren

Man kann in C allerdings auch hervorragend lesbaren Code schreiben. Wenn man will. C ist durch seine fehlende Strukturierung (kein Unit-Konzept, Klassen etc.) nur für kleine Projekte geeignet. Wenigstens durch die Header-Dateien hat man in Ansätzen das Unit-Konzept von Pascal eingefrickelt.

Fazit: Man sollte C können, wenn man mitreden will, und für µC und den hardwarenahen Bereich allgemein ist es eh Standard. Man muss ja nicht der Abkürzeritis und der Endloscodezeilenverwurst verfallen.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: "C" versus Pascal

  Alt 5. Jan 2014, 11:49
Fazit: Man sollte C können, wenn man mitreden will, und für µC und den hardwarenahen Bereich allgemein ist es eh Standard. Man muss ja nicht der Abkürzeritis und der Endloscodezeilenverwurst verfallen.
Was ich da so in Delphi schon gesehen habe...
C macht es zwar deutlich einfacher unlesbaren Code zu schreiben, aber es gibt genug Programmierer, die das auch in Delphi schaffen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: "C" versus Pascal

  Alt 5. Jan 2014, 23:56
'C' ist ein etwas besserer Macroassembler:
C war ein besserer Makro-Assembler. Wer einmal in den Unix V6 Quellcode (siehe Internet) gesehen hat, wird das bestätigen. Besonders die Structs ... gruselig.
Auch der Abkürzungswahn hatte Gründe, die z.B. bei den Linkern zu suchen waren. Nach 6-8 Stellen war denen der Rest des Namens egal.
Das war gestern.

Heute kenne ich keine Stelle z.B. in der Typsicherheit, wo modernes C wirklich Nachteile gegenüber Pascal hätte.

Geändert von BUG ( 6. Jan 2014 um 00:00 Uhr)
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#8

AW: "C" versus Pascal

  Alt 6. Jan 2014, 00:06
[...] C macht es zwar deutlich einfacher unlesbaren Code zu schreiben, aber es gibt genug Programmierer, die das auch in Delphi schaffen.
A bad programmer can write C in any language!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: "C" versus Pascal

  Alt 6. Jan 2014, 02:15
Die ungarische Notation hat bei einer nicht typisierten Sprache schon Sinn. In C kannst du einem Char auch einen Integer zuweise, ohne dass der Compiler meckert. Nur ob dann auch das herauskommt, was du eigentlich beabsichtigt hast, ist was anderes. Die ungarische Notation hilft solche Fehler zu vermeiden. weil man "sieht" was die Variable für einen Datentyp hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: "C" versus Pascal

  Alt 6. Jan 2014, 08:07
Die ungarische Notation hat bei einer nicht typisierten Sprache schon Sinn.
Is klar. Aber mit Lint wär das nicht passiert. Aus Sicht eines C-Programmierers ist das natürlich ein Schattenparkertool.

Imho hat das (ungarische Notation) hat aber eher etwas mit schlechtem Codestil zu tun: Wenn ich nicht sofort sehe, was für ein Typ eine Variable ist, dann hab ich im Code etwas sehr falsch gemacht. Typisch für C ist komplexer, kompakter, dreckiger Code mit sehr kurzen Variablennamen. Das man dann in die Vorwärtsverteidigung geht und wenigstens die Variablen per Namenskonvention einem Typ zuordnen kann, ist typisch für die C-Fraktion.

Aber C hat natürlich auch Vorteile ('#define' ist einer davon).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz