SlideShare a Scribd company logo
1 of 4
Download to read offline
Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/
© Roger Casadejús Pérez | Exatienda
Història i característiques del llenguatge C
C és un llenguatge orientat a la implementació de Sistemes Operatius, concretament Unix. C
és apreciat per l'eficiència del codi que produeix i és el llenguatge de programació més popular
per crear programari de sistemes, encara que també s'utilitza per crear aplicacions.
Es tracta d'un llenguatge feblement tipificat de mig nivell però amb moltes característiques de
baix nivell. Disposa de les estructures típiques dels llenguatges d'alt nivell però, al seu torn,
disposa de construccions del llenguatge que permeten un control a molt baix nivell. Els
compiladors solen oferir extensions al llenguatge que possibiliten barrejar codi en assemblador
amb codi C o accedir directament a memòria o dispositius perifèrics.
Un dels objectius de disseny del llenguatge C és que només siguin necessàries unes poques
instruccions en llenguatge màquina per traduir cada element del llenguatge, sense que faci
mancada un suport intens en temps d'execució. És molt possible escriure C a baix nivell
d'abstracció; de fet, C es va usar com a intermediari entre diferents llenguatges.
La història inicial de C es va dur a terme en els Laboratoris Bell de AT&T entre 1969 i 1973;
segons Ritchie, el període més creatiu va tenir lloc el 1972. Se li va donar el nom "C" perquè
moltes de les seves característiques van ser preses d'un llenguatge anterior anomenat "B".
Hi ha moltes llegendes sobre l'origen de C i el sistema operatiu amb el qual està íntimament
relacionat, Unix. Algunes d'elles són:
• El desenvolupament de C va ser el resultat del desig dels programadors de jugar amb Space
Travel. Havien estat jugant en el mainframe de la seva companyia, però a causa de la seva poca
capacitat de procés i en haver de suportar 100 usuaris, Thompson i Ritchie no tenien suficient
control sobre la nau per evitar col·lisions amb els asteroides. Per aquest motiu van decidir
portar el joc a un PDP-7 de l'oficina que no s'utilitzava; però aquesta màquina no tenia sistema
operatiu, així que van decidir escriure’n un. Finalment van decidir portar el sistema operatiu
del PDP-11 que hi havia en la seva oficina, però era molt costós, doncs tot el codi estava escrit
en llenguatge assemblador. Llavors van decidir usar un llenguatge d'alt nivell i portàtil perquè
el sistema operatiu es pogués portar fàcilment d'un ordinador a un altre. Van considerar usar
B, però mancava de les funcionalitats necessàries per aprofitar algunes característiques
avançades del PDP-11. Llavors van començar a crear un nou llenguatge, C.
• La justificació per obtenir l'ordinador original que es va usar per desenvolupar Unix va ser
crear un sistema que automatitzés l'arxiu de patents. La versió original d'Unix es va
desenvolupar en llenguatge assemblador. Més tard, el llenguatge C es va desenvolupar per
poder reescriure el sistema operatiu.
Al 1973, el llenguatge C s'havia tornat tan potent que la major part del kernel Unix,
originalment escrit en el llenguatge assemblador PDP-11/20, va ser reescrita en C. Aquest va
ser un dels primers nuclis de sistema operatiu implementats en un llenguatge diferent a
l'assemblador. (Alguns casos anteriors són el sistema Multics, escrit en PL/I, i Master Control
Program per al B5000 de Burroughs, escrit en ALGOL en 1961).
Al 1978, Ritchie i Brian Kernighan van publicar la primera edició del llenguatge de programació
C, també conegut com La bíblia de C. Aquest llibre va ser durant anys l'especificació informal
del llenguatge. El llenguatge descrit en aquest llibre rep habitualment el nom de "el C de
Kernighan i Ritchie" o simplement "K&R C" (La segona edició del llibre cobreix l'estàndard ANSI
C, descrit més a baix.)
Kernighan i Ritchie van introduir les següents característiques al llenguatge:
Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/
© Roger Casadejús Pérez | Exatienda
• El tipus de dades struct.
• El tipus de dades long int.
• El tipus de dades unsigned int.
• Els operadors =+ i =- van ser substituïts per += i -= per eliminar l'ambigüitat semàntica
d'expressions com a i=-10, que es podria interpretar bé com a i =- 10 o bé com a i = -10.
El C de Kernighan i Ritchie és el subconjunt més bàsic del llenguatge que un compilador deu
suportar. Durant molts anys, fins i tot després de la introducció del ANSI C, va ser considerat
"el mínim comú denominador" en el qual els programadors havien de programar quan
desitjaven que els seus programes fossin transportables, doncs no tots els compiladors
suportaven completament ANSI, i el codi raonablement ben escrit en K&R C és també codi
ANSI C vàlid.
En aquestes primeres versions de C, les úniques funcions que necessitaven ser declarades si
s'usaven abans de la definició de la funció eren les que retornaven valors no sencers. És a dir,
es pressuposava que una funció que s'usava sense declaració prèvia (prototip) retornaria un
sencer.
Les característiques amb les quals explica aquest llenguatge són:
Propietats
• Un nucli del llenguatge simple, amb funcionalitats afegides importants, com a funcions
matemàtiques i de maneig d'arxius, proporcionades per biblioteques.
• És un llenguatge molt flexible que permet programar amb múltiples estils. Un dels més
emprats és l'estructurat "no portat a l'extrem" (permetent certes llicències de ruptura).
• Un sistema de tipus que impedeix operacions sense sentit.
• Usa un llenguatge de preprocessat, el preprocessador de C, per a tasques com definir macros
i incloure múltiples arxius de codi font.
• Accés a memòria de baix nivell mitjançant l'ús de punters.
• Interrupcions al processador amb unions.
• Un conjunt reduït de paraules clau.
• Per defecte, el pas de paràmetres a una funció es realitza per valor. El pas per referència
s'aconsegueix passant explícitament a les funcions les adreces de memòria d'aquests
paràmetres.
• Punters a funcions i variables estàtiques, que permeten una forma rudimentària d'encapsulat
i polimorfisme.
• Tipus de dades agregades (struct) que permeten que dades relacionades (com un empleat,
que té un ID, un nom i un salari) es combinin i es manipulin com un tot (en una única variable
"empleat").
Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/
© Roger Casadejús Pérez | Exatienda
Avantatges
• Llenguatge molt eficient posat que és possible utilitzar les seves característiques de baix
nivell per realitzar implementacions òptimes.
• Malgrat el seu baix nivell és el llenguatge més portat en existència, havent-hi compiladors
per gairebé tots els sistemes coneguts.
• Proporciona facilitats per realitzar programes modulars i/o utilitzar codi o biblioteques
existents
Desavantatges
El major problema que presenta el llenguatge C enfront dels llenguatges de tipus de dada
dinàmica és la gran diferència en velocitat de desenvolupament: és molt més lent programar
en C. La raó estreba que el compilador de C es limita a traduir codi sense amb prou feines
afegir-ne gens.
La gestió de la memòria és un exemple clàssic: en C el programador ha de reservar i alliberar la
memòria explícitament. En altres llenguatges (com BASIC, Matlab o C#) la memòria és
gestionada de forma transparent per al programador. Això alleuja la càrrega de treball humà i
en moltes ocasions prevé errors.
El manteniment també és més difícil i costós que amb llenguatges de més alt nivell. El codi en
C es presta a sentències curtes i enrevessades de difícil interpretació. Encara que el llenguatge
admet codi escrit de forma fàcilment llegible, si no se segueixen normes en el equip de
programació alguns programadors poden acabar escrivint codi difícil de llegir. Això complica la
revisió i el manteniment.
C no disposa de sistemes de control automàtics i la seguretat depèn gairebé exclusivament de
l'experiència del programador. La major part dels problemes de seguretat en els sistemes
informàtics actuals deriva d'haver estat realitzats en C. La fallada de seguretat clàssica
consisteix que algunes entrades d'informació al programa no es comproven en longitud. Si un
atacant introdueix dades el bastant grans pot provocar la sobreescriptura de codi en la pila del
programa i fins i tot arribar a forçar l'execució de codi perniciós. Els llenguatges de tipus
dinàmic compten amb controls de gestió de memòria i d'entrada de dades automàtiques.
Per aquestes raons, els directors de desenvolupament han de sospesar l'avantatge en
eficiència d'un bon programa en C enfront de la major durada del treball i els riscos de
seguretat i estabilitat. Han de tenir en compte a més, que els equips baixen de preu amb el
temps mentre que el cost dels programadors augmenta.
Manques
• Recol·lecció d'escombraries natives, no obstant això es troben a aquest efecte biblioteques
com la "libgc" desenvolupada per Sun Microsystems, o el Recol·lector d'escombraries de
Boehm.
• Suport per a programació orientada a objectes, encara que la implementació original de C++
va ser un preprocessador que traduïa codi font de C++ a C.
• Encapsulació.
Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/
© Roger Casadejús Pérez | Exatienda
• Funcions niades, encara que GCC té aquesta característica com a extensió.
• Polimorfisme en temps de codi en forma de sobrecàrrega, sobrecàrrega d'operadors i només
disposa d'un suport rudimentari per a la programació genèrica.
• Suport natiu per a programació multifil i xarxes de computadors.
En conclusió podem recalcar la importància que té la programació avui dia, doncs amb aquesta
es creen programaris que són de gran ajuda per a les persones que treballa en l'àmbit
informàtic tant com les quals no, doncs facilita processos matemàtics, econòmics i fins i tot
químics.
En si podríem dir que la programació facilita treballs de processos llargs.

More Related Content

Similar to Història i característiques del llenguatge C

Software sistemes operatiusii
Software sistemes operatiusiiSoftware sistemes operatiusii
Software sistemes operatiusiitransskater
 
Nnnnnnnnnnn
NnnnnnnnnnnNnnnnnnnnnn
Nnnnnnnnnnnnakari27
 
Presentació Htm, Xml, Php
Presentació Htm, Xml, PhpPresentació Htm, Xml, Php
Presentació Htm, Xml, Phpmarius21 Marius
 
Linkat y servidor de Terminales
Linkat y servidor de TerminalesLinkat y servidor de Terminales
Linkat y servidor de TerminalesM José Reina
 
3 programari lliure-carla_coll
3 programari lliure-carla_coll3 programari lliure-carla_coll
3 programari lliure-carla_collcarlacr1998
 
3. programari lliure mario de la iglesia
3. programari lliure mario de la iglesia3. programari lliure mario de la iglesia
3. programari lliure mario de la iglesiaMario123456H
 
1. introducció
1. introducció1. introducció
1. introducciósergigrau
 
Software Gratuït per Windows
Software Gratuït per WindowsSoftware Gratuït per Windows
Software Gratuït per Windowscarlaprat
 
Glossari windows/apple
Glossari windows/appleGlossari windows/apple
Glossari windows/appleSergi Fadurdo
 
Algunes "prèvies" i quelcom més sobre la "Linkat 2"
Algunes "prèvies" i quelcom més sobre la "Linkat 2"Algunes "prèvies" i quelcom més sobre la "Linkat 2"
Algunes "prèvies" i quelcom més sobre la "Linkat 2"guest0ea05
 
Programari
Programari Programari
Programari Rams98
 
Programari lliure
Programari lliureProgramari lliure
Programari lliuretocoloki
 
Ordinador - Software i
Ordinador - Software iOrdinador - Software i
Ordinador - Software iDaniel Amo
 
Resum
ResumResum
Resumcfgmi
 
L’Arquitectura De L’Ordinador
L’Arquitectura De L’OrdinadorL’Arquitectura De L’Ordinador
L’Arquitectura De L’Ordinadorjribalt1
 

Similar to Història i característiques del llenguatge C (20)

Software sistemes operatiusii
Software sistemes operatiusiiSoftware sistemes operatiusii
Software sistemes operatiusii
 
Nnnnnnnnnnn
NnnnnnnnnnnNnnnnnnnnnn
Nnnnnnnnnnn
 
Html, Xtml & Php
Html, Xtml & PhpHtml, Xtml & Php
Html, Xtml & Php
 
Presentació Htm, Xml, Php
Presentació Htm, Xml, PhpPresentació Htm, Xml, Php
Presentació Htm, Xml, Php
 
T1_e1_barios
T1_e1_bariosT1_e1_barios
T1_e1_barios
 
Linkat y servidor de Terminales
Linkat y servidor de TerminalesLinkat y servidor de Terminales
Linkat y servidor de Terminales
 
3 programari lliure-carla_coll
3 programari lliure-carla_coll3 programari lliure-carla_coll
3 programari lliure-carla_coll
 
3. programari lliure mario de la iglesia
3. programari lliure mario de la iglesia3. programari lliure mario de la iglesia
3. programari lliure mario de la iglesia
 
1. introducció
1. introducció1. introducció
1. introducció
 
Programari
ProgramariProgramari
Programari
 
Programari
ProgramariProgramari
Programari
 
Software Gratuït per Windows
Software Gratuït per WindowsSoftware Gratuït per Windows
Software Gratuït per Windows
 
Glossari windows/apple
Glossari windows/appleGlossari windows/apple
Glossari windows/apple
 
Algunes "prèvies" i quelcom més sobre la "Linkat 2"
Algunes "prèvies" i quelcom més sobre la "Linkat 2"Algunes "prèvies" i quelcom més sobre la "Linkat 2"
Algunes "prèvies" i quelcom més sobre la "Linkat 2"
 
Programari
Programari Programari
Programari
 
Programari lliure
Programari lliureProgramari lliure
Programari lliure
 
Ordinador - Software i
Ordinador - Software iOrdinador - Software i
Ordinador - Software i
 
Resum
ResumResum
Resum
 
L’Arquitectura De L’Ordinador
L’Arquitectura De L’OrdinadorL’Arquitectura De L’Ordinador
L’Arquitectura De L’Ordinador
 
Activitat 3
Activitat 3Activitat 3
Activitat 3
 

More from Roger Casadejús Pérez

Presentació de Wordpress fins a la 3.5.1
Presentació de Wordpress fins a la 3.5.1Presentació de Wordpress fins a la 3.5.1
Presentació de Wordpress fins a la 3.5.1Roger Casadejús Pérez
 
Presentació de les novetats i llicències Vmware esxi 5
Presentació de les novetats i llicències Vmware esxi 5Presentació de les novetats i llicències Vmware esxi 5
Presentació de les novetats i llicències Vmware esxi 5Roger Casadejús Pérez
 

More from Roger Casadejús Pérez (20)

Presentació de Wordpress fins a la 3.5.1
Presentació de Wordpress fins a la 3.5.1Presentació de Wordpress fins a la 3.5.1
Presentació de Wordpress fins a la 3.5.1
 
Presentació de Facebook
Presentació de FacebookPresentació de Facebook
Presentació de Facebook
 
Presentació de Twitter
Presentació de TwitterPresentació de Twitter
Presentació de Twitter
 
Presentació del protocol TCP/IP
Presentació del protocol TCP/IPPresentació del protocol TCP/IP
Presentació del protocol TCP/IP
 
Presentació de la història de Google
Presentació de la història de GooglePresentació de la història de Google
Presentació de la història de Google
 
Presentació de les novetats i llicències Vmware esxi 5
Presentació de les novetats i llicències Vmware esxi 5Presentació de les novetats i llicències Vmware esxi 5
Presentació de les novetats i llicències Vmware esxi 5
 
Presentació de Virtual box
Presentació de Virtual boxPresentació de Virtual box
Presentació de Virtual box
 
Presentació històrica del VHS
Presentació històrica del VHSPresentació històrica del VHS
Presentació històrica del VHS
 
Presentació de Playstation 3
Presentació de Playstation 3Presentació de Playstation 3
Presentació de Playstation 3
 
Què és W3C?
Què és W3C?Què és W3C?
Què és W3C?
 
Seo: Com triomfar en els buscadors?
Seo: Com triomfar en els buscadors?Seo: Com triomfar en els buscadors?
Seo: Com triomfar en els buscadors?
 
Dues tecniques SEO de programació web
Dues tecniques SEO de programació webDues tecniques SEO de programació web
Dues tecniques SEO de programació web
 
Què és i com funciona el pagerank?
Què és i com funciona el pagerank?Què és i com funciona el pagerank?
Què és i com funciona el pagerank?
 
Url amigables
Url amigablesUrl amigables
Url amigables
 
Zona DMZ
Zona DMZZona DMZ
Zona DMZ
 
Presentació de spoofing
Presentació de spoofingPresentació de spoofing
Presentació de spoofing
 
IP brick
IP brickIP brick
IP brick
 
Presentació de Smoothwall
Presentació de SmoothwallPresentació de Smoothwall
Presentació de Smoothwall
 
Presentació històrica de Visual.NET
Presentació històrica de Visual.NETPresentació històrica de Visual.NET
Presentació històrica de Visual.NET
 
Presentació de MySQL
Presentació de MySQLPresentació de MySQL
Presentació de MySQL
 

Història i característiques del llenguatge C

  • 1. Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/ © Roger Casadejús Pérez | Exatienda Història i característiques del llenguatge C C és un llenguatge orientat a la implementació de Sistemes Operatius, concretament Unix. C és apreciat per l'eficiència del codi que produeix i és el llenguatge de programació més popular per crear programari de sistemes, encara que també s'utilitza per crear aplicacions. Es tracta d'un llenguatge feblement tipificat de mig nivell però amb moltes característiques de baix nivell. Disposa de les estructures típiques dels llenguatges d'alt nivell però, al seu torn, disposa de construccions del llenguatge que permeten un control a molt baix nivell. Els compiladors solen oferir extensions al llenguatge que possibiliten barrejar codi en assemblador amb codi C o accedir directament a memòria o dispositius perifèrics. Un dels objectius de disseny del llenguatge C és que només siguin necessàries unes poques instruccions en llenguatge màquina per traduir cada element del llenguatge, sense que faci mancada un suport intens en temps d'execució. És molt possible escriure C a baix nivell d'abstracció; de fet, C es va usar com a intermediari entre diferents llenguatges. La història inicial de C es va dur a terme en els Laboratoris Bell de AT&T entre 1969 i 1973; segons Ritchie, el període més creatiu va tenir lloc el 1972. Se li va donar el nom "C" perquè moltes de les seves característiques van ser preses d'un llenguatge anterior anomenat "B". Hi ha moltes llegendes sobre l'origen de C i el sistema operatiu amb el qual està íntimament relacionat, Unix. Algunes d'elles són: • El desenvolupament de C va ser el resultat del desig dels programadors de jugar amb Space Travel. Havien estat jugant en el mainframe de la seva companyia, però a causa de la seva poca capacitat de procés i en haver de suportar 100 usuaris, Thompson i Ritchie no tenien suficient control sobre la nau per evitar col·lisions amb els asteroides. Per aquest motiu van decidir portar el joc a un PDP-7 de l'oficina que no s'utilitzava; però aquesta màquina no tenia sistema operatiu, així que van decidir escriure’n un. Finalment van decidir portar el sistema operatiu del PDP-11 que hi havia en la seva oficina, però era molt costós, doncs tot el codi estava escrit en llenguatge assemblador. Llavors van decidir usar un llenguatge d'alt nivell i portàtil perquè el sistema operatiu es pogués portar fàcilment d'un ordinador a un altre. Van considerar usar B, però mancava de les funcionalitats necessàries per aprofitar algunes característiques avançades del PDP-11. Llavors van començar a crear un nou llenguatge, C. • La justificació per obtenir l'ordinador original que es va usar per desenvolupar Unix va ser crear un sistema que automatitzés l'arxiu de patents. La versió original d'Unix es va desenvolupar en llenguatge assemblador. Més tard, el llenguatge C es va desenvolupar per poder reescriure el sistema operatiu. Al 1973, el llenguatge C s'havia tornat tan potent que la major part del kernel Unix, originalment escrit en el llenguatge assemblador PDP-11/20, va ser reescrita en C. Aquest va ser un dels primers nuclis de sistema operatiu implementats en un llenguatge diferent a l'assemblador. (Alguns casos anteriors són el sistema Multics, escrit en PL/I, i Master Control Program per al B5000 de Burroughs, escrit en ALGOL en 1961). Al 1978, Ritchie i Brian Kernighan van publicar la primera edició del llenguatge de programació C, també conegut com La bíblia de C. Aquest llibre va ser durant anys l'especificació informal del llenguatge. El llenguatge descrit en aquest llibre rep habitualment el nom de "el C de Kernighan i Ritchie" o simplement "K&R C" (La segona edició del llibre cobreix l'estàndard ANSI C, descrit més a baix.) Kernighan i Ritchie van introduir les següents característiques al llenguatge:
  • 2. Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/ © Roger Casadejús Pérez | Exatienda • El tipus de dades struct. • El tipus de dades long int. • El tipus de dades unsigned int. • Els operadors =+ i =- van ser substituïts per += i -= per eliminar l'ambigüitat semàntica d'expressions com a i=-10, que es podria interpretar bé com a i =- 10 o bé com a i = -10. El C de Kernighan i Ritchie és el subconjunt més bàsic del llenguatge que un compilador deu suportar. Durant molts anys, fins i tot després de la introducció del ANSI C, va ser considerat "el mínim comú denominador" en el qual els programadors havien de programar quan desitjaven que els seus programes fossin transportables, doncs no tots els compiladors suportaven completament ANSI, i el codi raonablement ben escrit en K&R C és també codi ANSI C vàlid. En aquestes primeres versions de C, les úniques funcions que necessitaven ser declarades si s'usaven abans de la definició de la funció eren les que retornaven valors no sencers. És a dir, es pressuposava que una funció que s'usava sense declaració prèvia (prototip) retornaria un sencer. Les característiques amb les quals explica aquest llenguatge són: Propietats • Un nucli del llenguatge simple, amb funcionalitats afegides importants, com a funcions matemàtiques i de maneig d'arxius, proporcionades per biblioteques. • És un llenguatge molt flexible que permet programar amb múltiples estils. Un dels més emprats és l'estructurat "no portat a l'extrem" (permetent certes llicències de ruptura). • Un sistema de tipus que impedeix operacions sense sentit. • Usa un llenguatge de preprocessat, el preprocessador de C, per a tasques com definir macros i incloure múltiples arxius de codi font. • Accés a memòria de baix nivell mitjançant l'ús de punters. • Interrupcions al processador amb unions. • Un conjunt reduït de paraules clau. • Per defecte, el pas de paràmetres a una funció es realitza per valor. El pas per referència s'aconsegueix passant explícitament a les funcions les adreces de memòria d'aquests paràmetres. • Punters a funcions i variables estàtiques, que permeten una forma rudimentària d'encapsulat i polimorfisme. • Tipus de dades agregades (struct) que permeten que dades relacionades (com un empleat, que té un ID, un nom i un salari) es combinin i es manipulin com un tot (en una única variable "empleat").
  • 3. Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/ © Roger Casadejús Pérez | Exatienda Avantatges • Llenguatge molt eficient posat que és possible utilitzar les seves característiques de baix nivell per realitzar implementacions òptimes. • Malgrat el seu baix nivell és el llenguatge més portat en existència, havent-hi compiladors per gairebé tots els sistemes coneguts. • Proporciona facilitats per realitzar programes modulars i/o utilitzar codi o biblioteques existents Desavantatges El major problema que presenta el llenguatge C enfront dels llenguatges de tipus de dada dinàmica és la gran diferència en velocitat de desenvolupament: és molt més lent programar en C. La raó estreba que el compilador de C es limita a traduir codi sense amb prou feines afegir-ne gens. La gestió de la memòria és un exemple clàssic: en C el programador ha de reservar i alliberar la memòria explícitament. En altres llenguatges (com BASIC, Matlab o C#) la memòria és gestionada de forma transparent per al programador. Això alleuja la càrrega de treball humà i en moltes ocasions prevé errors. El manteniment també és més difícil i costós que amb llenguatges de més alt nivell. El codi en C es presta a sentències curtes i enrevessades de difícil interpretació. Encara que el llenguatge admet codi escrit de forma fàcilment llegible, si no se segueixen normes en el equip de programació alguns programadors poden acabar escrivint codi difícil de llegir. Això complica la revisió i el manteniment. C no disposa de sistemes de control automàtics i la seguretat depèn gairebé exclusivament de l'experiència del programador. La major part dels problemes de seguretat en els sistemes informàtics actuals deriva d'haver estat realitzats en C. La fallada de seguretat clàssica consisteix que algunes entrades d'informació al programa no es comproven en longitud. Si un atacant introdueix dades el bastant grans pot provocar la sobreescriptura de codi en la pila del programa i fins i tot arribar a forçar l'execució de codi perniciós. Els llenguatges de tipus dinàmic compten amb controls de gestió de memòria i d'entrada de dades automàtiques. Per aquestes raons, els directors de desenvolupament han de sospesar l'avantatge en eficiència d'un bon programa en C enfront de la major durada del treball i els riscos de seguretat i estabilitat. Han de tenir en compte a més, que els equips baixen de preu amb el temps mentre que el cost dels programadors augmenta. Manques • Recol·lecció d'escombraries natives, no obstant això es troben a aquest efecte biblioteques com la "libgc" desenvolupada per Sun Microsystems, o el Recol·lector d'escombraries de Boehm. • Suport per a programació orientada a objectes, encara que la implementació original de C++ va ser un preprocessador que traduïa codi font de C++ a C. • Encapsulació.
  • 4. Más manuales en: http://www.exabyteinformatica.com/manuales-y-apuntes-freeware/ © Roger Casadejús Pérez | Exatienda • Funcions niades, encara que GCC té aquesta característica com a extensió. • Polimorfisme en temps de codi en forma de sobrecàrrega, sobrecàrrega d'operadors i només disposa d'un suport rudimentari per a la programació genèrica. • Suport natiu per a programació multifil i xarxes de computadors. En conclusió podem recalcar la importància que té la programació avui dia, doncs amb aquesta es creen programaris que són de gran ajuda per a les persones que treballa en l'àmbit informàtic tant com les quals no, doncs facilita processos matemàtics, econòmics i fins i tot químics. En si podríem dir que la programació facilita treballs de processos llargs.