Hallo, en welkom terug.
In deze lezing wil ik het hebben over enkele van de specifieke functies
die verband houden met de programmeertaal c.
We kennen dus alle voordelen van c.
Ik had het over dat soort ad misselijkheid.
We weten dat c compact produceert en efficiënte programma's. Dat is echter een taalfunctie,
dat is belangrijk.
Het is een van de belangrijkste programmeertalen en zal dat
ook blijven. We weten dit allemaal.
Dus ik wil het nog maar eens herhalen.
Maar de belangrijkste kenmerken van de c
taal zijn dat ze efficiënt, draagbaar, krachtig en flexibel en programmeurgericht.
En we gaan deze behandelen in meer detail wat dit betekent.
Maar deze zijn belangrijk kenmerken van c.
We moeten ze weer begrijpen, om te begrijpen hoe de code
in deze taal moet worden geschreven.
Dus wat betekent efficiëntie? en draagbaarheid betekent?
Nou, c is een efficiënte taal.
Het maakt gebruik van alle mogelijkheden van de huidige computers.
Het is erg compact programma's en geschreven in c.
Ze zijn erg snel en compact.
Ik heb het eerder gehad over hoe de mapping van c-statements naar instructies in een bepaalde taal
is zeer efficiënt.
Dit is een van de redenen waarom het zo snel gaat.
Een van de klachten over java was vroeger, hey, java
is erg traag.
Nou, met c heb je dit probleem niet.
Wanneer u een programma schrijft in C, hij loopt snel, hij is erg compact.
Dat is dus een taalfunctie.
Dat is een efficiëntie.
Programmeurs kunnen finetunen hun programma's om ze nog
efficiënter te maken omdat het is zo'n laag niveau.
Ze kunnen meer gebruiken efficiënt gebruik van het geheugen.
Je kunt dit soort dingen niet doen in Java.
Java heeft zijn eigen vuilnisophaler en je kunt het geheugen niet manipuleren
om efficiënter te zijn.
Dus c is een efficiënte taal en het is een draagbare taal.
Dus ik heb dit kort aangestipt in een vorige lezing, maar dit is belangrijk
want wat dit? betekent dat als u een c-programma op
één besturingssysteem schrijft, u kan het op een ander besturingssysteem draaien zonder
het te wijzigen.
Een van de problemen bij het schrijven code in de wereld van vandaag
gaat soms niet werken, tenzij je schrijft in meerdere
talen of wijzigt het uitgebreid.
Dus als je bijvoorbeeld schrijft een Android-applicatie voor een Android-telefoon, dat is
het niet gaan werken op een iOS-telefoon.
Die heb je niet soorten problemen met c.
Je schrijft c, en het zal werken op allerlei verschillende
hardware, allerlei verschillende besturingssystemen.
In feite is c de leider in draagbaarheid, deze mogelijkheid en de
compilers zijn gemakkelijk beschikbaar.
U kunt een compiler op Windows, Linux, geen probleem.
Linux/Unix-systemen komen meestal met een c-compiler, dus je hoeft het niet eens te downloaden
als je aan bent Linux/Unix hetzelfde met de Macintosh.
U kunt dus beginnen met het schrijven van c-programma's onmiddellijk, geen externe downloads.
Ze zijn ook beschikbaar uiteraard voor Windows.
Maar typisch voor Windows, u zal een compiler moeten downloaden.
En dat gaan we doen wanneer we downloaden onze vereiste software.
Grote kans dus dat je krijgt een c-compiler voor elk apparaat
dat je gebruikt.
Je kunt ook een c-compiler krijgen voor
een Android-apparaat of een iOS-apparaat, echt laag niveau micro of minicomputers, maar ook processors
en auto's.
Het is ook erg flexibel en dat is belangrijk, en het is ook erg krachtig.
Dus de Unix Linux-kernels zijn geschreven in c.
Wat is een kern?
Nou, we kennen Unix en Linux is een besturingssysteem.
We kennen een besturingssysteem zal u efficiënter helpen - een
gebruiker efficiënter - gebruik een computer, en het bestuurt veel van
de aspecten van interactie met hardware enzovoort.
De kern is het brein van het besturingssysteem.
Dus net zoals een CPU een brein is van een computer, een
kernel is waar echt alle hersenen en kennis van de besturingssysteem gaan, dus het bevat
meestal interfaces voor de hardware en de kernel die het geheugen beheert,
doet allerlei verschillende dingen.
En dat staat allemaal in C.
Dus dat kan je vertellen de krachtig aspect van de taal.
Als de kernel van een operating systeem is geschreven in die taal,
die taal is krachtig.
Zoveel compilers en interpreters voor andere talen zijn gebouwd
op c of zijn geschreven in c.
Dus als dat je niet vertelt de krachtige aard van de taal,
ik weet niet wat zal.
Maar Fortran, Perl, Python, elke compilers die in dat soort talen zijn
geschreven, zijn geschreven in c.
Dus c-programma's zijn gebruikt voor: het oplossen van natuurkundige en
technische problemen en zelfs voor het animeren speciale effecten voor films, veel gebruikt voor
veel verschillende dingen.
Flexibiliteit is ook belangrijk, vooral als je een ontwikkelaar bent en
deze code schrijft.
Je wilt kunnen doen dingen op verschillende manieren.
U wilt kunnen oplossen in veel opzichten een probleem.
Meer flexibiliteit, hoe beter.
Er is echter een afweging tussen flexibiliteit en prestatie.
Dus soms is het - het is pakkend wanneer je een taal ontwerpt, maar c is
ontworpen om te zijn flexibel en is zeer flexibel.
Dus je kunt zo ongeveer alles wat je wilt in een c-programma.
Je kunt het allemaal anders uitschrijven soorten toepassingen.
En u kunt ook het geheugen beheren en doe verschillende dingen waar veel andere
talen je toe beperken.
Er is een afweging omdat: soms veroorzaakt de flexibiliteit meer
bugs of zorgt ervoor dat ontwikkelaars niet om bepaalde concepten volledig te begrijpen, omdat ze
complexer kunnen zijn.
Maar uiteindelijk is flexibiliteit een goed, vooral als je
een ontwikkelaar bent die het begrijpt de taal heel goed.
Het is ook de basis voor meer geavanceerde
talen, zoals c++, noemden dat eerder.
Het wordt gebruikt voor het ontwikkelen van mobiele telefoons apps in de vorm van doelstelling-c.
Objective-c is een propriëtair taal door Apple.
Kortom, het is c met objecten net als c++, maar ze besloten hun
eigen taal te schrijven.
Maar het wordt minder gebruikt in iOS en minder omdat Swift populairder wordt,
maar het is ook gemakkelijk om leren vanwege zijn compactheid.
Het is een ideale eerste taal om leer of je programmeur wilt worden.
En ik denk dat ik de . heb gegeven reden voor dat vrij goed.
Je gaat verwerven voldoende kennis
voor praktische toepassingsontwikkeling heel snel en heel gemakkelijk.
Dus daarom is het de goede eerste om te leren.
En dat is wat je gaat doen merk op in deze
klas is, wauw nu ik c wauw heb geleerd, is het veel gemakkelijker om java te
leren, is het veel gemakkelijker om php te leren, het is een stuk gemakkelijker om te leren deze
andere talen omdat het alles heeft wat die talen hebben en het is heel gemakkelijk te leren.
Het is programmeurgericht.
Dat is een taalfunctie.
Het voldoet aan de behoeften van de programmeurs.
Ik heb je verteld hoe Dennis Ritchie toen hij de
taal maakte, wilde hij het meer ontwikkelaar maken geconcentreerd, en dat deed hij.
Dat doel heeft hij bereikt.
Het geeft u directe toegang tot hardware, geeft u directe toegang tot geheugen
en beheert uw eigen geheugen.
Dus de flexibiliteit komt in het spel wanneer het is wanneer
het programmeur georiënteerd is.
In Java kun je er niet veel van maken zaken als het beheren van je eigen geheugen.
C heeft ook veel andere mogelijkheden die flexibiliteit mogelijk maken.
En ik denk dat flexibiliteit het toelaat om meer programmeurgericht te zijn, omdat programmeurs dat
leuk vinden.
Ze houden van die flexibiliteit, ze wil niet verteld worden wat te doen.
Het bevat een grote selectie van operators, waarmee
u zich beknopt kunt uitdrukken.
Dit betekent dat we het niet weten wat een operator nog is.
Maar een operator kan dingen zijn zoals het optellen en
aftrekken van wiskundige operatoren of toewijzing operators die gegevens aan het geheugen toewijzen.
En hoe meer operators je hebt hebben u in staat gesteld om uzelf meer uit
te drukken in uw code.
En dus een taalfunctie met meer gericht op programmeurs is deze lijst met operators
die we zullen veel uitgebreider over praten.
Het is minder streng dan de meeste talen beperken van wat je kunt doen,
heb ik hier al over gesproken.
Ik noemde de afweging met dit, flexibiliteit versus striktheid.
Het is een voordeel dat je dat kunt dingen op veel verschillende manieren doen.
Het kan echter een gevaar zijn omdat het meer
vatbaar is voor fouten bij programmeurs, vooral met iets als wijzers.
Dus het feit dat u uw eigen geheugen in c is erg flexibel, maar
soms ook erg ingewikkeld.
En als gevolg daarvan hebben veel programmeurs bugs in programma's introduceren.
Nu staat java niet toe u om uw geheugen te beheren.
Maar het is ook minder flexibel maar het vermindert ook uw bugs
in uw programma.
Er is dus een wisselwerking.
U wilt in principe hebben flexibiliteit door de zaken ook minder
complex te laten zijn.
C geeft je meer vrijheid, maar legt ook meer verantwoordelijkheid bij de
ontwikkelaar, en dat is waarom het programmagericht is.
C-implementaties hebben een grote bibliotheek met nuttige c-functies.
Je hoeft dus niet alles op te schrijven in c als je iets wilt doen.
Programmeertalen zouden doorgaans: andere programmafunctionaliteit bevatten die bij de taal
wordt geleverd.
Dus als je bijvoorbeeld wilt lezen invoer van de gebruiker, u
wilt daarvoor geen low-level c-code schrijven.
Er zullen codes in c zijn die doet het al voor je
en je hergebruikt die code gewoon.
En dat is meestal ingekapseld in iets dat de bibliotheek wordt genoemd.
En dus heeft c allerlei soorten bibliotheken functies
om gegevens van het toetsenbord te lezen, gegevens naar bestanden te schrijven, om allerlei leuke dingen te creëren met verschillende
processen en bedreigingen.
Ik bedoel allerlei leuke dingen.
Dus het feit dat veel van implementatie komt met de taal en
dat hoeft niet eigenlijk zelf implementeren, je hoeft alleen maar te leren hoe
je het moet gebruiken de bibliotheken is zeer voordelig en
zeer gericht op programmeurs.
Enkele andere kenmerken van c zijn biedt functies op een laag niveau die over het algemeen
worden geleverd door het lagere niveau talen, daar hebben we het over gehad.
Maar nogmaals, het beste voorbeeld is dit geheugen beheer, directe toegang tot het geheugen.
Programma's kunnen gemanipuleerd met behulp van bits.
Nou, als dat geen laag niveau is Ik weet niet wat het is. Het is de mogelijkheid om
het geheugen te beheren representatie op een beetje niveau.
Bits en bytes zijn hoe we daadwerkelijk gegevens op computers
opslaan, biedt een breed scala aan bitmanipulatie-operators.
Nogmaals, iets in de taal waar we het in meer detail over zullen hebben.
Pointers spelen een grote rol in c.
Dit is een concept dat je mag heb er eerder van gehoord,
misschien heb je er nog nooit van gehoord, maar het is gerelateerd aan geheugenbeheer.
We gaan er veel hebben lezingen over wijzers. Maar het is een zeer,
zeer belangrijke functie van c die u op het zeer
hoge niveau moet kennen.
C geheugen beheren, c pointers. Vaak als je denkt aan
de programmeertaal c, eerst waar je aan denkt zijn pointers.
En dit alles is direct toegang tot het geheugen.
Nadelen van c, we spraken over die flexibiliteitsafweging, flexibiliteit
versus vrijheid.
Het vraagt ook extra verantwoordelijkheid.
Sommigen zien dit als een nadeel, sommigen zijn van mening dat pointers worden misbruikt.
En als gevolg daarvan hebben veel mensen schrijven slechte c-programma's.
Nou, ja, als je als je iemand geeft een tool dat je iets doet,
ze doen het verkeerd, wie is er schuldig?
Het is een soort van, nogmaals, wil je? om die tool te
beperken omdat deze wordt misbruikt of wilt u toestaan? dat instrument om flexibiliteit mogelijk te maken.
Je kunt dus vaak flexibeler zijn, maar het risico bestaat dat er meer fouten worden gemaakt en
vaak zijn deze fouten dat ook erg moeilijk te vinden en te traceren,
vooral als het geheugenspullen zijn.
Dus dat kan een probleem zijn.
Andere dingen vanwege zijn rijkdom van operators en de beknoptheid ervan, maakt
het de taal moeilijk soms te lezen en te volgen.
Voor het grootste deel is c zeer gemakkelijk leesbaar.
Maar als je er veel van gebruikt verschillende operators, wat het
complexer kan maken.
Dus er is een mogelijkheid om te schrijven up obscure code, maar dat
is elke taal kan slecht worden geschreven.
Dus je kunt het Engels gebruiken taal als je spreekt en je
kunt een slechte grammatica hebben.
Het is niet anders als je schrijft - een programmeertaal gebruiken.
Maar sommigen zeggen dat met c het nadeel is vanwege al deze operators.
Als u het verkeerd gebruikt, is het kan moeilijker zijn om de code te volgen.
Even samenvatten dus.
Dit is een mooie illustratie weer vond ik op het
web die ik je graag zou willen geven.
De kernkenmerken van de c-taal: snel en efficiënt, draagbaar, veel leuke bibliotheken waar je kan code
hergebruiken en je hoeft dingen niet alleen te
doen, modulariteit, besproken eerder,
maar dit is het idee om code rond functies
te organiseren, eenvoudig uit
te breiden en dan allemaal deze krachtige operators waarmee u dingen
kunt doen.
Veel leuke features dus.
En de meeste functies die waar we het net over hadden zijn in
veel moderne talen omdat ze zijn opgebouwd uit c.