19/20 semmittudó99 válasza: "Erre még az is rájön, hogy a beágyazott rendszerek 99%-át C-ben írták/írják, mert olyan közeli hardver hozzáférést tesz lehetővé olyan egyszerűen, amit más programnyelvek nem." Édes öcsém ennek fuss neki még 1x. Mutasd már meg a C melyik eleme teszi lehetővé a jobb hardver hozzáférést mint pl. a pythonnak, vagy akár a Fortrannak? A másik fele "99%-át C-ben irják" hát nagyon nem, sokan próbálják ezt elhitetni a világgal, de max. C assembly vegyesen. Vagy C-ben írt "assembly" kóddal. Nem kevés ilyet fejlesztettem, és látok sok ilyen projektet, és a teljesen tiszta C max. 50%. A maradék C és assembly vegyesen. Vagy C-nek álcázott assembly. Attól, hogy .h fájlban van egy raklapnyi konstans defincició ami a proci belső regisztereit kicimezi attól még nem lesz az egy C program. Ok, nem azt írjuk, hogy
MOV (0xFF00),ACCU
ADD (0xFF02),ACCU
MOV ACCU,(0xFF04)
Hanem annyit írunk, hogy A=B+C, majd valahol kidefiniáljuk, hogy az A változó címe a 0xFF04, B-é 0xFF00, A C-é 0xFF02 sokkal nem vagyunk előrébb.
semmittudó99: Fölöslegesen túráztatod magad. Nem jártál egyetemre, ez világosan kiderül a válaszaidból.
A C egy mid-level nyelv, amelynek (mármint a fordítónak) kimenete jobbára* assembly kód, amit assemblerrel fordít le az ember tárgykódra.
A C az elterjedtségét is ennek köszönheti, mert ezzel, hogy nem binárist, hanem asm forrást generál, könnyen hordozhatóvá vált, hiszen amelyik procihoz volt assembler (és melyikhez nem volt?) arra elég volt egy C "fordítót" implementálni, ami a C esetében sokkal könnyebb volt más nyelveknél, hiszen a C mindössze 26 kulcsszóból áll. Aki már írt compilert, az tudja, mekkora könnyebbség egy magas szintű nyelv esetében asm kimenetet generálni gépi kód helyett. Ráadásul ezt meg lehetett tenni bármilyen rendelkezésre álló nyelven, mert csak szövegfeldolgozás az egész, text a bemenet és a kimenet is, éppen a kényesebb részeket nem kell megírni. Sokáig nem is született C compiler, mivel ezek a fordítók lényegében csak trans-pilerek voltak.
Mindegy, a lényeg az, hogy a C abszolút nem való kezdőknek, hiszen éppen a kevés kulcsszó - és az ebből következően baromi sok operátor - teszi nehezen olvashatóvá a nyelvet, ráadásul a C egy nagyon karakter spórolós**, gyengén tipusos nyelv is, aminek okán kezdők kezébe egyáltalán nem való. Más a kérdés, ha valaki intézményben tanul, mert ott fogják a kezét, ha hibázik, van kitől kérdezzen és nem fordul a tanulás neverending szipkázásba, ahogy ez otthoni önfejlesztés esetén történne, teszem hozzá, kivédhetetlenül.
* Akad persze direkt C fordító is, ami közvetlenül tárgykódot generál, de ennek nincs túl nagy jelentősége. A C alapban C forrásból generál assembly forráskódot.
** Kevés karakter = kevés infó, kevés infó = sok sz.pás.
22/23 semmittudó99 válasza:
"Kezdj el pythonba írni beágyat akkor, szólj mire jutottál."
Csatlakozom a kollégához "Fölöslegesen túráztatod magad. Nem jártál egyetemre, ez világosan kiderül a válaszaidból."
Csak egy link: [link] és egyre többen írnak pythonban is embed. rendszerekre programot. És nem teljesít észrevehetően rosszabban mint egy C++ (egyszer össze hasonlítottam). A C-nél és az ASM-nél rosszabb a teljesítménye (sebesség, tárigény). De ha ráérős az alkalmazás (nem kell sebességre optimalizálni) és van memória (program+RAM) elég akkor nagyon kényelmes a python. Ha kell a sebesség és kevés a memória akkor az ASM teljesít a legjobban (legkisebb, leggyorsabb kód), utána a C (nem annyira kicsi, nem annyira gyors, mérhető a sebesség csökkenés), majd a C++ és végül a Python.
A C kulcsszavai ezek (ANSI C):
auto, double, int, struct, break, else, long, switch, case, enum, register, typedef, char, extern, return, union, continue, for, signed, void, do, if, static, while, default, goto, sizeof, volatile, const, float, short, unsigned.
Az operátorok meg ezek: +,-,*,/,&,|,=+, stb, stb.
Igen, de minden nyelven vannak előre megírt library-k.
Ezeket nem kötelező ismerni, de megjegyzem, elég rossz helyen tapogatózol, ha ilyesmivel (kulcsszavak) akarsz spórolni.
Nem leszel előrébb, és a C nem kezdőknek való, mert nagyon rosszul olvasható és hihetetlenül könnyű benne hibázni.
Neked pascal vagy python felelne meg, mert ha programozni már tudsz, akkor szinte mindegy, hogy miben írod meg az elágazásaidat, loopjaidat.
Amúgy, lehet programot írni bármiféle lib nélkül is. Én elég sokszor így is szoktam, leszámítva a saját libeket.
Nem programnyelvben kell gondolkodni, hanem algoritmikus gondolkodásban.
Valamint az a szakmai általános műveltség megszerzése kell, hogy tudd, hogy az adott problémát milyen programnyelven, környezetben a leghatékonyabb megoldani.
Maga a szintaxis megtanulása az lényegtelen, ráadásul manapság már nem üres papírral kezdődik a programozás, hanem google keresővel, aztán a kódrészek gyomlálásával, összefésüléssel, magyarán legó az egész.
A nagy tudomány ma már a program tervezés.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!