| ||||||||||||||||||
Conceptes bàsics¶Informàtica, binari, digital i software¶La paraula informàtica ve d'"informació" i "automàtica". La informació és un conjunt de dades, i automàtic és que funciona per si mateix. D'aquesta manera, la informàtica és la ciència que estudia el tractament de la informació d'una mitjançant un sistema automàtic, com pot ser un ordinador. La informàtica permet automatitzar el processament de la informació. Tota la informació que utilitza un "ordinador" ha d'estar representada en una seqüència de zeros i uns (dígits) anomenada codi binari. Això significa que cada unitat bàsica d'informació pot tenir dos estats (0, 1). A aquesta unitat se'l coneix com a bit o binary digit (b) i al conjunt de huit bits s'anomena byte (B). Un byte pot representar \(2^8\) caràcters, és a dir, 256 possibilitats diferents (Taula ASCII). Quan un dispositiu qualsevol utilitza o emmagatzema informació en forma de bits diem que aquest dispositiu és digital. Quan el mecanisme que utilitza no és mitjançant aquest codi, com un rellotge clàssic o un termòmetre de mercuri, diem que és analògic. El programari (software) és la part intangible d'un sistema informàtic, equivalent a l'equipament lògic. Tot programari està dissenyat per fer una tasca determinada al nostre sistema. Dins d'aquest programari podem distingir dos tipus diferents. D'una banda, tenim les aplicacions, programari instal·lat sobre el sistema operatiu amb la funció de realitzar una tasca en concret (editar document, reproduir música,...) Per una banda, tenim el sistema operatiu, un programari amb la funció de proporcionar una plataforma única per l'ús de la màquina, independentment del maquinari (hardware) que està present. El sistema operatiu és l'encarregat de comunicar-se amb el maquinari. Programar vs Desenvolupar programari¶Es pot definir programar com especificar les ordres (instruccions) i dades a un ordinador (dispositiu) que aquest executarà per rebre una sèrie de resultats o provocar un cert comportament. Nota És important fer servir la paraula dispositiu, ja que hui en dia podem programar des d'un ordinador fins a una nevera, passant per unes sabatilles esportives o, per què no, fins i tot una catifa si aquests utilitzen informació digital. Cada vegada més elements de la nostra vida quotidiana accepten ordres en forma de comandes, línies de codi o programes, dins del que es coneix com a Internet de les Coses (Internet of Things o IoT). En canvi, desenvolupar software va més enllà que programar. És tot el procés d'analitzar, dissenyar, provar, documentar i mantindre el programari, què és molt major al mateix temps que es dedica a exclusivament a escriure línies de codi. Llenguatges de programació¶Segons el nivell d'abstracció¶Els éssers humans ens comuniquem mitjançant llenguatges naturals que s'han anat originant i han anat evolucionant mitjançant segles. Aquests llenguatges són molt complexos, amb molts matisos i ambigüitats. Fins i tot, quan nosaltres ens comuniquem, podem arribar a malentesos o confondre'ns per culpa del llenguatge. Per contra, si volem donar instruccions a una màquina, necessitem fer-ho d'una manera que siga clara, concisa i que sols tinga una única interpretació. Arran d'aquesta necessitat, s'han creat els llenguatges de programació. El llenguatge de programació més bàsic, però a la vegada més difícil d'utilitzar, i d'entendre és el llenguatge màquina. Aquest llenguatge és un sistema de codis que són directament interpretables per un processador concret que realitzen diferents operacions (suma, resta, moure dades d'un registre a un altre...). Aquests codis que el processador entén estan en binari i, per tant, són difícils d'utilitzar per a els éssers humans. Per facilitar aquesta tasca, existeix el llenguatge de baix nivell o assemblador, que és una relació entre els diferents codis del llenguatge màquina i paraules o valors fàcilment recordables (ADD en compte de 0110). No obstant això, són igualment difícils d'utilitzar. German, Wikimedia Commons Llenguatge màquina Perquè la tasca de desenvolupar codi siga més amigable, fàcil i flexible, s'han anat creant diferents llenguatges de programació d'alt nivell, cadascun amb diferents característiques, funcionalitats i propòsits. Aquests llenguatges s'assemblen més al llenguatge natural, però són clars i no permeten ambigüitats. A més, també tenen una alta abstracció respecte al maquinari de la plataforma on es desitgen executar. Programming gecko, Wikimedia Commons Llenguatge d'alt nivell Segons el tipus d'execució¶Hem comentat que els desenvolupadors prefereixen utilitzar llenguatges d'alt nivell per desenvolupar programari, però, en canvi, els dispositius sols entenen el llenguatge màquina dissenyat per a aquest. Per poder executar el codi desenvolupat mitjançant llenguatges d'alt nivell, cal traduir-lo abans a llenguatge que el dispositiu siga capaç d'entendre. Segons com es faça aquesta traducció, podem classificar els llenguatges de programació en dos tipus:
Interpretats vs Compilats¶
Llenguatges intermedis o bytecode¶Alguns llenguatges de programació més moderns han combinat els dos maneres de traducció per intentar aprofitar al màxim els avantatges de cada mètode. El llenguatge intermedi o bytecode és un llenguatge més abstracte respecte al maquinari que el codi màquina, però que ha generat un fitxer binari mitjançant el procés de compilació d'un llenguatge d'alt nivell. El bytecode és executat en el dispositiu mitjançant un intèrpret. Els avantatges d'aquests mètodes són:
Exemples d'aquest tipus de llenguatge són: Java, Kotlin (compatible amb Java), C#,... Java¶Un exemple d'utilització de llenguatges intermedis és Java. El procés d'execució d'un codi font Java és el següent: Procés d'execució de codi Java
Codi font:
Compilar:
Executar: Segons el paradigma¶Els llenguatges de programació també poden ser classificats segons el seu paradigma, és a dir, la seua manera de treballar i com estan estructurats.
Com triar llenguatge de programació?¶Resoldre aquesta pregunta ens podria portar dies sencers divagant entre tots els possibles paradigmes i tipus de llenguatges i arribaríem a la conclusió de: DEPÉN. Cada llenguatge de programació té unes característiques determinades que el fan més o menys apropiat per al context on el faces servir, podent ser determinants aquests factors:
Bibliografia¶
| ||||||||||||||||||