# Alternative zu Bascom und Turbo Pacal



## wuschi (13. April 2014)

Wie der Titel es schon beschreibt suche ich eine alternative zu den genannten Programiersprachen resp tutorials zu den Sprachen... Wieso? Ich hab mal wieder lust zu programmieren weil ich beim aufräumen meinen atmega32 wiedergefunden habe und jetzt bisl hilfe brauch um wieder rein zu kommen


----------



## Leandros (13. April 2014)

C. Mit was anderem kannst du die atmegas gar nicht programmieren.


----------



## wuschi (13. April 2014)

hm dan hab ich da wohl was falsch verstanden in der schule haben wir den code in bascom geschrieben (AVR studio4) und dann auf den atmega gespielt ...kann natürlich sein  dass da im hintergrund ein converter gelaufen ist


----------



## Leandros (13. April 2014)

AVR Studio compiled das ganze zu C.
C code kannst du direkt auf den atmega spielen.


----------



## wuschi (13. April 2014)

OK jetzt bin ich schon wieder bisschen schlauer
was ist eigentlich der grösste unterschied zwischen BAscom und C , resp wird C noch gebraucht ??


----------



## Leandros (13. April 2014)

Ähhm. So ziemlich alles was hardware nah geschrieben wird, ist in C.


----------



## wuschi (13. April 2014)

ok supi dan glaub ich werd ich mich mal in c hinein knien 
Ist C++ eine erweiterte "form" von C


----------



## Leandros (13. April 2014)

C++ ist C++. Ist eine andere Programmiersprache.


----------



## thysol (14. April 2014)

Leandros schrieb:


> C. Mit was anderem kannst du die atmegas gar nicht programmieren.


 
Nein, die kann mann auch mit Fortran, Objective-C, Objective-C++ und ein paar weiteren programmieren. GCC hat für die genannten Sprachen front-ends und bietet AVR als target plattform an.



wuschi schrieb:


> hm dan hab ich da wohl was falsch verstanden in  der schule haben wir den code in bascom geschrieben (AVR studio4) und  dann auf den atmega gespielt ...kann natürlich sein  dass da im  hintergrund ein converter gelaufen ist



Ich will mal bezweifeln das da ein Converter läuft. 



Leandros schrieb:


> AVR Studio compiled das ganze zu C.


 
Woher hast du das? Alle compiler die ich kenne machen sowas nicht. Wenn mehrere Programmier Sprachen unterstützt werden wie bei GCC zum Beispiel, dann hat der Compiler einfach mehrere Front-ends. Jede Programmier Sprachen spezifische front-end kompiliert dann den Code in einen internen temp code, der dann wiederum in den Maschinen Code umgewandelt wird. Siehe hier:

File:Compiler.svg - Wikipedia, the free encyclopedia

Und überleg mal, der Aufwand eine Programmiersprache in C zu konvertieren dürfte in etwa die gleiche sein wie den Code in internen temp code zu kompilieren, nur das wenn mann erst in C umwandelt der gleiche Spass nochmal von vorne beginnt, total ineffizient.



wuschi schrieb:


> ok supi dan glaub ich werd ich mich mal in c hinein knien
> Ist C++ eine erweiterte "form" von C


 


Leandros schrieb:


> C++ ist C++. Ist eine andere Programmiersprache.


 
C++ ist trotzdem eine erweiterte Form von C, alleine der Name schon..........


----------



## Leandros (14. April 2014)

C++ bzw früher "C with classes" ist eine andere Programmiersprache. Deiner Logik nach könntest du genau so sagen, Java ist C++ nur erweitert. 

Ja. Du hast natürlich Recht. Da wird nichts "converted". Ist mir schon klar. War nur einfacher zu sagen. 
Kommt eh immer assembly bei raus. 

Das avr target für gcc ist doch extern? Ich bin mir nicht sicher das es alle frontends unterstützt.


----------



## Crysis nerd (14. April 2014)

thysol schrieb:


> C++ ist trotzdem eine erweiterte Form von C, alleine der Name schon..........


 
Wenn der Name zählt, ist ja auch Javascript eine Erweiterung von Java...

C++ ist komplett abwärtskompatibel zu C90 (dem Standard der '90 verabschiedet wurde). Abwärtskompatibel heißt, dass C90 Code mit einem C++ Compiler immer noch compiliert. Daher scheint es, als wäre es eine Erweiterung. Das stimmt aber nicht, wie Leandros schon gesagt hat. C++ fügt mehr core-language features hinzu, als C überhaupt schon hatte. Ich will nicht die C-Fans entzürnen, aber es ist, als würde man sagen, ein Haus ist die Erweiterung eines Steins 
Darüber hinaus wurden C++ und C weiterentwickelt und haben sich voneinander entfernt. Es gab die C Standards C99 und C11 sowie die C++ Standard C++03, C++11 und C++14. Jeder dieser Standards hat neue Features hinzugefügt, einige davon sind nur in C und einige nur in C++ verfügbar. Also: Zwei verschiedene Sprachen.


----------



## thysol (14. April 2014)

Leandros schrieb:


> C++ bzw früher "C with classes" ist eine andere Programmiersprache. Deiner Logik nach könntest du genau so sagen, Java ist C++ nur erweitert.





Crysis nerd schrieb:


> Wenn der Name zählt, ist ja auch Javascript eine Erweiterung von Java...
> 
> C++ ist komplett abwärtskompatibel zu C90 (dem Standard der '90  verabschiedet wurde). Abwärtskompatibel heißt, dass C90 Code mit einem  C++ Compiler immer noch compiliert. Daher scheint es, als wäre es eine  Erweiterung. Das stimmt aber nicht, wie Leandros schon gesagt hat. C++  fügt mehr core-language features hinzu, als C überhaupt schon hatte. Ich  will nicht die C-Fans entzürnen, aber es ist, als würde man sagen, ein  Haus ist die Erweiterung eines Steins
> Darüber hinaus wurden C++ und C weiterentwickelt und haben sich  voneinander entfernt. Es gab die C Standards C99 und C11 sowie die C++  Standard C++03, C++11 und C++14. Jeder dieser Standards hat neue  Features hinzugefügt, einige davon sind nur in C und einige nur in C++  verfügbar. Also: Zwei verschiedene Sprachen.



Na gut, ich dachte halt nur weil C code gleichzeitig auch valider C++ code ist, das ist ja bei Java und C++ nicht der Fall, aber ihr habt Recht, mein Fehler.



Leandros schrieb:


> Ja. Du hast natürlich Recht. Da wird nichts "converted". Ist mir schon klar. War nur einfacher zu sagen.
> Kommt eh immer assembly bei raus.
> 
> Das avr target für gcc ist doch extern? Ich bin mir nicht sicher das es alle frontends unterstützt.


 
Ich glaube du hast Recht. Es gibt ein seperates avr-gcc.


----------

