www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu C-Syntax


Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe in einem Programm von Thomas Pfeiffer
http://thomaspfeifer.net/tochterblitz_ausloeser.htm

einige C-Zeilen gefunden, die ich nicht deuten kann:
#define cbit(_a,_b) _a&=~(1<<_b);
#define sbit(_a,_b) _a|=(1<<_b);

 und weiter unten im Programm dann:
sbit(PORTC,0);

sbit(DDRD,4);

cbit(PORTD,4);


Frage: Was machen diese beiden define Statements?

Ist es vielleicht so, daß es in C keine Möglichkeit wie z.B. in
Bascom gibt, einfach mit:
SET Portc.0  und RESET Portc.0 zu arbeiten und er deshalb solche
Sachen "selbst anfertigen" mußte?

MfG Paul

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sbit(PORTC,0);
  PORTC |= (1<<0);

> sbit(DDRD,4);
  DDRD |= (1<<4);

> cbit(PORTD,4);
  PORTD &= ~(1<<4);

> Frage: Was machen diese beiden define Statements?

Definieren Makros (Regeln) für den C-Präprozessor. Der C-Präprozessor 
macht eine Textersetzung nach den Regeln s.o.

> Ist es vielleicht so, daß es in C keine Möglichkeit wie z.B. in
> Bascom gibt, einfach mit:
> SET Portc.0  und RESET Portc.0 zu arbeiten und er deshalb solche
> Sachen "selbst anfertigen" mußte?

In manchen aufgebohrten C Toolchains gibt es etwas ähnliches. Im AVR-GCC 
nicht.

Autor: GST=! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define cbit(_a,_b) _a&=~(1<<_b);
#define sbit(_a,_b) _a|=(1<<_b);

 und weiter unten im Programm dann:
sbit(PORTC,0);

sbit(DDRD,4);

cbit(PORTD,4);
-----------------
PORTC|=(1<<0);
DDRD|=(1<<4);
PORTD&=~(1<<4);

einfach nur ersetzt. erster Wert ist _a und der zweite _b

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nicht zu vergessen die überzähligen ;

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:

> Ist es vielleicht so, daß es in C keine Möglichkeit wie z.B. in
> Bascom gibt, einfach mit:
> SET Portc.0  und RESET Portc.0 zu arbeiten und er deshalb solche
> Sachen "selbst anfertigen" mußte?


C weiß nichts von Ports.
C Compiler gibt es für Computer von simplen µC bis hinauf zu 
Supercomputern, die globale Klimaprobleme durchrechnen. Und alle 
sprechen die gleiche Sprache - nämlich C. Denn anders als BASCOM ist C 
eine genormte Sprache. Mit genormten Elementen und genormten Verhalten 
(und der einen oder anderen kleinen Erweiterung für Spezialsachen, wenns 
gar nicht anders geht)

Auch dein BASCOM muss ja letztendes bei
  SET Portc.0
für den µC die entsprechenden Assembler-Anweisungen generieren.

Ob du nun

  SET Portc.0

oder

  PORTC |= ( 1 << PC0 );

schreibst, ist eine reine Frage der Ästhetik, auf der Maschine passiert 
100% dasselbe.
Nur dass man in C sich selbst einen Mechanismus ausdenken kann, der 
einem gefällt, und das Bitgeschubse 'verdeckt'. Bei BASCOM hat dir das 
der Entwickler abgenommen und dir den Mechanismus der ihm gefällt aufs 
Auge gedrückt.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke Euch für die Erklärungen und Hinweise.

Hintergrund ist, daß ich den Algorithmus des Programmes in Bascom
programmieren will. Das gestaltet sich jetzt ziemlich einfach.

Da ich nur für mich selbst Programme schreibe, muß ich kein C 
beherrschen.

Solche Sachen: &=~ machen mich immer ganz porös.
;-)

MfG Paul

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
>
> Solche Sachen: &=~ machen mich immer ganz porös.
> ;-)

reine Gewohnheit.

So wie Ungarn, Tschechen, Franzosen, Italiener und was weiß ich noch 
wer, ihre ganzen Hatschecks und Apoströphchens nicht mehr sehen und die 
für sie völlig normal sind und dazugehören. Uns sind ihre 
Verschnörkelungen suspekt und denen sind unsere Umlautdoppelpunkte 
suspekt.

Ein C-Programmierer liest solche Dinge

  PORTC &= ~( 1 << DC1 );

ganz normal und ohne Stocken als "Bit DC1 am Port C abschalten". Die 
Sonderzeichen gehören dazu. Und wenn du das 2 Millionen mal gesehen 
hast, findest du es ganz natürlich.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl-Heinz
Ja, das mag schon sein, aber nichts desto Trotz sind doch Quelltexte
in Pascal oder Basic viel einfacher zu lesen, weil sie fast in
"Umgangssprache" auf dem Papier stehen.

Da sehe ich ziemlich sofort, was der Programmierer wollte.
Woher kommt denn eigentlich diese Übermacht der C-Programmierer und
-Versteher? Bekommen die Leute das beim Studium aufgehalst?

Das ist doch eine große Umgewöhnungsphase vom "normalen" Schreiben von
mathematischen Termen zu so einem Kauderwelsch und außerordentlich
fehlerträchtig beim Eingeben des Quelltextes denkt sich

Paul

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:

> Da sehe ich ziemlich sofort, was der Programmierer wollte.
> Woher kommt denn eigentlich diese Übermacht der C-Programmierer und
> -Versteher? Bekommen die Leute das beim Studium aufgehalst?

C ist durch Unix sehr populär geworden.
Ausserdem ist die Sprache nicht sehr umfangreich, so dass erste Compiler 
praktisch überall schnell verfügbar waren, da relativ leicht zu 
schreiben bzw. anzupassen. Und Vorlagen bekam man von AT&T praktisch 
umsonst.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ob du nun

  SET Portc.0

>oder

  PORTC |= ( 1 << PC0 );

>schreibst, ist eine reine Frage der Ästhetik, auf der Maschine passiert
>100% dasselbe.

Nee, nee, nee. Abhängig vom Prozessor verwendet der eine Compiler einen 
Befehl, der nur das eine Bit beeinflußt, der andere generiert einen 
read-modify-write Zugriff, der das komplette Byte schreibt.

Wenn im letzten Fall ein anderes Bit per Interrupt zwischen read-write 
verändert wird, gibt es einen üblen, schwer zu findenden Seiteneffekt. 
Um dagegen abgesichert zu sein, müßte man den Interrupt im #define 
sperren.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl-Heinz schrob:
>C ist durch Unix sehr populär geworden.

Ach, da habe ich garnicht mehr dran gedacht, daß das ganze System in C
geschrieben worden ist.

MfG Paul

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:

> Woher kommt denn eigentlich diese Übermacht der C-Programmierer und
> -Versteher? Bekommen die Leute das beim Studium aufgehalst?

Das Basic gibt es eigentlich nicht. Es gibt tausende von Sprachen, die 
sich irgendwas mit Basic nennen und sich untereinander entfernt ähneln. 
Aber eben nur entfernt. Viele sind Einmannsprachen, hat der Autor keine 
Lust mehr => Tonne. Allein das reicht als Abschreckung oft aus.

C ist die dominante Sprache der meisten heutigen Betriebssysteme, 
insbesondere natürlich der Unixoiden, aber auch Windows ist massgeblich 
davon geprägt.

> Das ist doch eine große Umgewöhnungsphase vom "normalen" Schreiben von
> mathematischen Termen zu so einem Kauderwelsch und außerordentlich
> fehlerträchtig beim Eingeben des Quelltextes denkt sich

C ist keine saubere Sprache. Nie gewesen und wird es auch nicht mehr. 
Aber nicht so sehr der Symbolik wegen. Denn ob eine auf Symbolen 
beruhende Sprache an Stelle von seitenlangem COBOL-Geschwafel besser 
oder schlechter ist, das ist ein bischen Ansichtssache. Vor allem wenn 
man mit APL angefangen hat (Wikipedia: http://tinyurl.com/yvz3xd ;-).

Mathematiker pflegen ja auch ausgiebig in Symbolen zu korrespondieren.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@A.K.

Um Gottes Willen! Das sieht ja noch viel gemeiner aus. Warum hast Du das
getan? Warum nur?
;-)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:

> Um Gottes Willen! Das sieht ja noch viel gemeiner aus. Warum hast Du das
> getan? Warum nur?

APL hat einen eminent mathematischen Charakter, korrespondierend zur 
linearen Algebra. Programmiert wird mehrdimensional im Kopf, weil die 
grundlegenden Daten n-dimensionale Arrays sind, mit dem Skalar als 
Spezialfall n=0. Eignet sich ganz gut um in solchen Sphären denken zu 
lernen. Ist natürlich nur für manche Fragestellungen geeignet, für 
andere nicht.

Aber der Grund war banaler: Es gab sonst nichts ;-). Das war zu einer 
Zeit, als in den Schulen noch keine PCs rumstanden, weils noch keine 
gab. Sondern in diesem (sehr besonderen) Fall eine Schreibmaschine mit 
Standleitung an einen Firmen-Mainframe. Unsere Versuche mit einem 
Schachprogramm fanden rechenzeitbedingt (lies: Kosten) deshalb auch 
nicht wirklich grosse Zustimmung seitens der Schule.

Autor: Fabian Hoemcke (Firma: Technische Universität Berlin) (brein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
> @Karl-Heinz
> Ja, das mag schon sein, aber nichts desto Trotz sind doch Quelltexte
> in Pascal oder Basic viel einfacher zu lesen, weil sie fast in
> "Umgangssprache" auf dem Papier stehen.
>
> Da sehe ich ziemlich sofort, was der Programmierer wollte.
> Woher kommt denn eigentlich diese Übermacht der C-Programmierer und
> -Versteher? Bekommen die Leute das beim Studium aufgehalst?

Das mit dem leichter lesen bezweifle ich. Es ist, wie es Karl heinz 
Buchegger schrieb Ansichtssache ist. Genauso könnte man sagen, die 
asiatischen Schriftzeichen oder ägyptische Hieroglyphen seien 
unpraktisch und schwer zu verstehen. Ich finde, C hat den Vorteil, dass 
man recht prägnanten Code schreiben kann, der in Basic recht schnell 
aufgeblasen wirkt. Desweiteren Sind diese Operatoren sehr genau. Zum 
Beispiel man möchte etwas negieren. Ja was negieren? Eine Zahl (-) eine 
Aussage (!) oder die Bits (~)? Da jetzt jedesmal negNum, negLog oder 
negBit zu schreiben, macht es nicht übersichtlicher. Desweiteren sind 
die menschlichen Sprachen recht ungenau. Und das kann sich auch im 
Sourcecode wiederspiegeln. Deshalb lege ich persönlich keinen so großen 
Wert darauf, dass die Programmiersprache einer menschlichen Sprache 
ähnelt. Spätestens bei recht komplexen Algorithmen oder bei 
mathematischen Operationen wird es obsolet.
//Bitte nicht vergessen, dass ist alles nur meine Meinung.

Desweiteren finde ich es überhaupt nicht einfacher zu lesen, wenn 
überall 'Text' steht. Wenn jeder Funktionsbeginn oder -Ende mit einem 
Wort gezeichnet wird. Das selbe mit Kontrollstrukturen und Blöcken. Wenn 
da '{' und '}' dem ganzen doch ein klareres Bild liefern.

Was die Übermacht angeht. Sowohl in Fachgeschäften als auch bei mir auf 
der Arbeit, finden sich fast ausschließlich Leute die mit Basic 
Programmieren können. Obwohl alle Software und Treibe u.ä. in C 
geschrieben werden (Es sind ja nicht alles Programmierer bei uns! :D). 
Es sind fast alles ältere Semester und die sind halt mit Basic groß 
geworden. Und gute C-Programmierer unter ihnen kenne ich auch nur 2.

Vieles davon ist sicher auch Ansichtssache wie zum Beispiel die 
Standardisierung durch ANSI. Klar, wenn man zu Hause für sich 
programmiert, kann einem sowas schon an der Popertze vorbei gehen. Aber 
in einer Firma sieht das schon wieder anders aus.

Ursprünglich, in meiner Freizeit, während meiner Schulzeit, fing ich 
auch an in Basic zu programmieren. Während meiner ersten Ausbildung war 
es dann Pascal und VisualBasic. Während meiner Studienzeit und meiner 2. 
Ausbildung C, C# und Java. C++ in einem Praktikum. Ich kann nicht sagen, 
dass es uns aufgehalst wurde. Und wenn man mal eine Weile in den Cs und 
Js und was es da nicht alles gibt, programmiert hat, dann, so ging es 
mir, gefallen einen die Basics nicht nur von der Ästhetik her nicht 
mehr. Zum Beispiel ob man Variablen deklarieren kann oder muss, ob der 
Code compiliert oder interpretiert werden soll, usw. Es spielt auch eine 
Rolle welche (guten) Erfahrungen man in den Sprachen gesammelt hat. Ich 
zum Beispiel hatte die objektorientierte Programmierung nicht verstanden 
obwohl ich ein Jahr in VB programmiert hatte. Im Praktikum nach der 
Ausbildung, hatte ich es aber verstanden als ich mich mit C++ zu 
beschäftigen hatte. Obendrein ist nicht nur die Sprache allein wichtig. 
Gerade nicht bei solch simplen wie C und Basic. Die zeichnen sich dann 
doch eher durch vorhandene Libraries und und APIs aus. So kann es gut 
sein, dass man in einem Falle Basic und in anderem Falle C verwendet 
obwohl jedes mal beides möglich ist.

> Das ist doch eine große Umgewöhnungsphase vom "normalen" Schreiben von
> mathematischen Termen zu so einem Kauderwelsch und außerordentlich
> fehlerträchtig beim Eingeben des Quelltextes denkt sich

Generell stimmt das schon, aber ich kann nicht sagen, dass C so schlimm 
ist, dass man dadurch viele Fehler hat.
Schau dir mal dazu die Sprache Brainf*** an: 
http://en.wikipedia.org/wiki/Brainf***#Examples. // Die Sterne sind 
jeweils durch 'u', 'c' und 'k' zu ersetzen!
Interessant finde ich Python, es wirkt für mich wie eine Mischung aus C 
und Basic. Nicht nur wegen der Syntax:
http://de.wikipedia.org/wiki/Python_(Programmiersp...

Gruß BrEin

/*
Der Beitrag scheint Spam zu enthalten: "f***"
:-D:-D:-D
*/

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich freue mich über die Antworten von Euch. Es scheint wohl wirklich
daran zu liegen, daß der Mensch ein "Gewohnheitstier" ist und an den
Sachen festhält, die er mal als junger Kerl gelehrt bekam.

Ich begann mit Algol, weil es auf dem Rechner an der Arbeit verwendet
wurde. Später ging ich dann auf Pascal über, was sich nicht gar so
sehr von Algol unterscheidet. Dann war ich lange Zeit mit anderem
Kram befasst, so daß ich dann wieder fast von vorne anfangen mußte.

Hinzu kommt, daß das Gedächtnis auch nicht besser wird (oder mein
EEPROM im Kopf ist fast voll)
;-)

MfG Paul

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:

> Ich freue mich über die Antworten von Euch. Es scheint wohl wirklich
> daran zu liegen, daß der Mensch ein "Gewohnheitstier" ist und an den
> Sachen festhält, die er mal als junger Kerl gelehrt bekam.

Sachte, so simpel bin ich nicht gestrickt. Danach gings bei mir mit 
etwas Pascal weiter, Assembler, Forth und diversen andere Sprachen - 
auch Basic war dabei - und mir wäre im Controller-Kontext Ada weitaus 
lieber als C, wenn das irgendeinen realistischen Sinn hätte.

In den 80ern gab es zu C im Eigenbaubereich (eigenes 68000 Design mit 
eigenem Betriebssystem) kaum eine Alternative. Es war die einzige 
Sprache bei der man legal an einen kostenlosen und überschaubaren 
Compiler kam, den man zudem auch noch nach Laune umstricken konnte. Und 
in der man diverse Programmen aus dem Unix-Umfeld finden und nutzen 
konnte. Grosses Gefallen habe ich an der Sprache nie gefunden, auch 
nicht (erst recht nicht) an C++.

Mit APL habe ich seit fast 3 Jahrzehnten nichts mehr zu tun gehabt. Es 
eignet sich aber prima, um manche Leute zu schockieren ;-).

Autor: Fabian Hoemcke (Firma: Technische Universität Berlin) (brein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
> Ich freue mich über die Antworten von Euch. Es scheint wohl wirklich
> daran zu liegen, daß der Mensch ein "Gewohnheitstier" ist und an den
> Sachen festhält, die er mal als junger Kerl gelehrt bekam.
>
> Ich begann mit Algol, weil es auf dem Rechner an der Arbeit verwendet
> wurde. Später ging ich dann auf Pascal über, was sich nicht gar so
> sehr von Algol unterscheidet. Dann war ich lange Zeit mit anderem
> Kram befasst, so daß ich dann wieder fast von vorne anfangen mußte.
>
> Hinzu kommt, daß das Gedächtnis auch nicht besser wird (oder mein
> EEPROM im Kopf ist fast voll)
> ;-)
>
> MfG Paul

Ups, da bist du wohl älter als ich?
Dann nehme ich die Sache mit dem älteren Semester zurück!

Das mit dem Gewohnheitstier stimmt aber irgendwie. Nicht nur bei mir, 
auch bei anderen konnte ich feststellen, wie stur man sich dem 
OOP-Prinzip gegenüber gestellt hat. "Man kann das ja auch anders in C (, 
Basic, Pascal, ...)" machen. Tja, wenn man sich an ein Denkmuster 
gewöhnt hat...

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
> Das ist doch eine große Umgewöhnungsphase vom "normalen" Schreiben von
> mathematischen Termen zu so einem Kauderwelsch und außerordentlich
> fehlerträchtig beim Eingeben des Quelltextes denkt sich
>
> Paul

Nachdem schon jeder seine Würzpaste zu deinem Beitrag abgegeben hat,
werde ich meine Tube auch mal ausquetschen:

Schau dir doch mal an, was die Mathematiker für einen "Kauderwelsch"
verbreiten: Wo du hinschaust, nur seltsame Symbole. Da gibt es komische
Schnörkel (Integralzeichen), teilweise mit einem Kreis übermalt, auf der
Spitze stehende Dreiecke, Gleichheitszeichen mit einem dritten Strich
und vieles mehr. Kein Mensch außer den Mathematikern selbst kann das
jemals verstehen.

Sie verwenden zwar immerhin auch Buchstaben, hassen aber ausgeschriebene
Wörter wie der Teufel das Weihwasser. Kein Wunder dass ihnen das latei-
nische Alphabet für die Bezeichnung von Variablen und Funktionen schon
bald ausging. Aber statt die Variablen einfach mit aussagekräftigen Wör-
tern zu benennen, haben sie lieber das griechische Alphabet gekidnappt.
Als auch dieses nicht mehr gereicht hat, kam das hebräische an die Rei-
he. Um noch mehr "Buchstaben" zur Verfügung zu haben, werden auch noch
Striche, Pfeile u.ä. über, unter und neben die Buchstaben gekritzelt.

Bei den Physikern sieht es eher noch schlimmer aus. Sie übernehmen nicht
nur den ganzen Kauderwelsch von den Mathematikern, sondern fügen zusätz-
liche Verunstaltungen hinzu. So wird bspw. ein Strich mitten durch das
Herz des kleinen 'h' gestoßen (Buchstabenquälerei ist das, jawohl!) und
das verstümmelte Gebilde als neues Zeichen definiert: 'ℏ'.

Es gibt aber immer noch eine Steigerung: Das sind die E-Techniker. Die
kommen zwar mit vergleichsweise wenigen Buchstaben aus, dafür erfinden
sie aber ständig neue, nichtsagende Symbole, die sie sogar, um das Ganze
noch komplizierter zu machen, nicht in einer, sondern gleich in zwei
Dimensionen anordnen. Das nennen sie dann "Schaltplan". Warum schreibt
man dort, wo ein Transistor hin soll, nicht einfach Transistor hin,
sondern malt stattdessen ein keilschriftähnliches Gebilde?

Andere Symbole, wie bspw. das des Mosfet, sehen schon fast chinesisch
aus. Wie lange habe ich gebraucht, um es halbwegs auswendig zeichnen zu
können? Zudem können sich die Amis und die Eurpäer nicht einmal auf
einen einheitlichen Symoblsatz einigen, so dass sich die ohnehin schon
nahe bei Unendlich liegende Anzahl sogar noch verdoppelt.

Wenn man bedenkt, dass die älteren Programmiersprachen fast alle von
Mathematikern, Physikern und E-Technikern entwickelt worden sind, können
wir wirklich heilfroh sein, dass dabei so einfache und leicht überschau-
bare Dinge wie APL heraus gekommen sind.

Und jetzt kommst du, der einen Schaltplan sicher so leicht wie die Mor-
genzeitung liest, und beklagst dich über C???

C verwendet ausschließlich Zeichen, die auf jeder gewöhnlichen Computer-
tastatur zu finden sind. Keines dieser Zeichen mutet auch nur im Ent-
ferntesten sumerisch oder chinesisch an. Das einzige etwas komplizier-
tere Zeichen, der Klammeraffe ('@'), wurde extra weggelassen, weil bei
ihm vielleicht noch am ehesten die Gefahr bestünde, den Programmierer
zu verwirren. Eine derart weichgespülte Sprache ist eigentlich eines
echten Programmierers gar nicht würdig.

Klar gibt es Programmiersprachen, die deutlich geschwätziger sind. Das
schönste Beispiel dafür ist Cobol. Aber das stammt ja schließlich auch
von einer Frau:

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

Und von was für einer!

Da vergeht selbst der härtesten Hardware das Lachen. In Cobol hat der
Begriff "Befehl" noch seine ursprünglichste Bedeutung. Die Cobol-typi-
schen Satzendepunkte nach Anweisungen kommen beim Steuerwerk als unmiss-
verständliches "Basta!" an. Welche Prozessor käme da noch auf die Idee,
auch nur einen halben Wait-State einzuschieben?                      ;-)

Autor: Fabian Hoemcke (Firma: Technische Universität Berlin) (brein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Yalu X.:

Danke für deinen Beitrag.
Solche Posts sind es, die man in seiner Runde auf der Arbeit unbedingt 
vorlesen muss!

Danke, einfach super!

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde, dass sich jeder seine Sprach selbst aussuchen sollte.
Menschen sind nun mal eher neuronale Netze (VHDL!!!) als sequentielle 
Systeme (C, Basic, ...).
Leider sind Computer nun mal sequentielle System, und man muss seine 
Denkstruktur ändern.
Schon gibt es wieder zwei Verfahren:
Objektorientiert und prozeduraler Ansatz.
Objektorientierte Programmierung geht noch am ehesten in Richtung 
neuronales Netz (Da gibt's auch noch andere Sprachen als VHDL.).
Ich bevorzuge Java oder solche Sprachen, aber für den AVR ist C unter 
den Hochsprachen noch am schönsten.

Unter den prozeduralen Programmiersprachen gibt es jetzt so welche, die 
Englisch sind (Basic, Pascal,...) und solche, die eher kryptisch sind 
(C, ASM). Ich würde einen Computer wahrscheinlich nicht auf Englisch 
anreden, also wechsle ich die Sprache. Wie man im Französischen über 
Akzente und andere Grammatik stolpert, geht es auch bei C zur Sache.
So Sprachen wie ASM erfordern einen völlig anderen Denkansatz zu unseren 
komplexen Gedanken. Also eher außerirdisch.
Und dann gibt es noch Sprachen wie APL oder Brainf**k, auch wenn 
letzteres eher ein informationstechnischer Witz ist (Offtopic Fachwitze: 
Kennt jemand den mit den zwei Wasserstoffatomen?).
Das wäre dann Chinesisch.

Man muss sich einfach um gewöhnen.
Computer sind keine Menschen, FPGAs schon eher.
Mal sehen, was sie Zukunft bringt.
Seht es einfach als Solidarität gegenüber der virtuellen Dienerfraktion 
an.
Bevor noch die Roboter revoltieren...

Mit freundlichen Grüßen,
Valentin Buck

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So schöne Texte hier, -besonders der von Yalu...
:-))

Sollte mir das nicht zu denken geben? Ich denke schon.

MfG Paul

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was in C möglich aber nicht lesbar ist (jedenfalls nicht
ohne sehr viel Übung) zeigt dieses Schachprogramm:

http://nanochess.110mb.com/chess3.html

Damit kann auch ein Mega zum Schachcomputer werden ;)

hans

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hans schrieb:
> Was in C möglich aber nicht lesbar ist (jedenfalls nicht
> ohne sehr viel Übung) zeigt dieses Schachprogramm:
>
> http://nanochess.110mb.com/chess3.html

Der arme Compiler.


Aber der Endcode wird dadruch auch nicht kleiner. Wer richtig optimiert 
kommt mit Leserlichen Code genausoweit.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.