Programació d'ordinadors

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 14:36, 19 maig 2016 amb l'última edició de Langtoolbot (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.
Programa en BASIC.

Programació d'ordinadors o programació informàtica (sovint abreujat programació o codificació) és el procés d'escriure, provar, depurar/solucionar problemes, i mantenir el codi font de programes. Aquest codi font està escrit en un llenguatge de programació. El codi pot ser una modificació d'una font existent o una cosa completament nova. L'objectiu de la programació és crear un programa que mostra un determinat comportament desitjat (personalització). El procés d'escriure el codi font sovint requereix experiència en molts temes diferents, incloent coneixement de l'àmbit d'aplicació, dels algorismes especialitzats i lògica formal.[1]

Resum

Dins d'enginyeria de programari, la programació (la implementació) es considera com una fase en un procés de desenvolupament de programari.

Hi ha un debat en curs sobre en quina mesura l'escriptura de programes és un art, un ofici o una disciplina d'enginyeria.[2] En general, la bona programació es considera que és l'aplicació mesurada dels tres, amb l'objectiu de produir una solució de programari eficient i capaç d'evolucionar (els criteris d'«eficiència» i «evolució» varien considerablement). La disciplina es diferencia de moltes altres professions tècniques, ja que els programadors, en general, no necessiten ser llicenciats o passar per qualsevol proves de certificació estandarditzades (o regulatització governamental) per anomenar-se a si mateixos «programadors» o fins i tot «enginyers de programari». No obstant això, pel fet que la disciplina abasta moltes àrees, que pot o no incloure aplicacions crítiques, és discutible la concessió d'una llicència per a la professió en el seu conjunt. En la majoria dels casos, la disciplina és autoregulada per les entitats que requereixen la programació, i de vegades ambients molt estrictes es defineixen (per exemple, l'ús d'AdaCore a la Força Aèria dels Estats Units i habilitacions de seguretat).

Un altre debat en curs és el grau en què el llenguatge de programació utilitzat per escriure programes informàtics afecta la forma que el programa final pren. Aquest debat és anàloga al que envolta la hipòtesi de Sapir-Whorf en la lingüística,[3] que postula que la natura d'un idioma parlat determinat influeix en el pensament habitual dels seus parlants. Diferents patrons del llenguatge produeixen diferents patrons de pensament. Aquesta idea desafia la possibilitat de representar el món a la perfecció amb el llenguatge, perquè reconeix que els mecanismes de qualsevol llenguatge condicionen els pensaments de la seva comunitat parlant.

Dit d'una altra manera, la programació és l'art de transformar requeriments en alguna cosa que un ordinador pot executar.

Una breu història de la programació

Targeta perforada de format de 80 columnes d'IBM utilitzada al començament dels anys 1970 a la Universitat de Stuttgart (Alemanya) per a l'entrada de programes Fortran a l'ordinador central IBM. El text de la línia de codi es troba a la part superior esquerra.

La primera màquina programable (és a dir, màquina de la qual les possibilitats d'ús canvien quan es modifica el seu «programa») és, probablement, el teler de Jacquard, que es va completar el 1801. La màquina utilitzava una sèrie de cartrons perforats. Els forats indicaven el patró que el teler seguia per realitzar un teixit; amb targetes diferents, el teler produïa teixits diferents. Aquesta innovació ha estat llavors millorada per Herman Hollerith d'IBM per al desenvolupament de les famoses targetes perforades d'IBM.

El 1936, la publicació de l'article seminal de la ciència informàtica On Computable Numbers with an Application to the Entscheidungsproblem per Alan Mathison Turing,[4] va posar en marxa la creació de l'ordinador programable. Ell presenta la seva màquina de Turing, el primer ordinador programable universal, i inventa els conceptes i les condicions de programació i programa.

Els primers programes informàtics eren realitzats amb un soldador i un gran nombre de tubs de buit (més tard, transistors). Fent-se els programes més complexos, allò s'ha fet gairebé impossible, perquè un sol error tornava el programa sencer inutilitzable. Amb els avenços en emmagatzematge de dades, es fa possible carregar el programa a partir de targetes perforades, contenint la llista de les instruccions en codi binari específic per a un tipus particular d'ordinador. Augmentant la potència dels ordinadors, se'ls va utilitzar per fer els programes, els programadors preferint, naturalment escriure el text, més que com conjunts de 0 i d'1, deixant que la màquina mateixa va fer la traducció. Amb el temps, nous llenguatges de programació han aparegut, fent cada vegada més l'abstracció del maquinari sobre el qual s'hauria d'executar els programes. Això aporta beneficis en diversos aspectes: aquests llenguatges són més fàcils d'aprendre, un programador pot produir un codi més ràpidament, i els programes produïts es poden executar en diferents màquines.

Llenguatges de programació

Diferents llenguatges de programació admeten estils diferents de programació (anomenats paradigmes de programació). L'elecció del llenguatge utilitzat està subjecte a moltes consideracions, com la política de l'empresa, l'adequació a la tasca, la disponibilitat de paquets de tercers, o preferència individual. Idealment, el llenguatge de programació més adequat per a la tasca en qüestió serà seleccionat. Les compensacions d'aquest ideal impliquen trobar prou programadors que coneixen el llenguatge per construir un equip, la disponibilitat de compiladors per a aquell llenguatge i l'eficiència amb què executen els programes escrits en un llenguatge donat. Els llenguatges formen un espectre aproximat des de «baix nivell» a «alt nivell»; els llenguatges de «baix nivell» són típicament més orientats cap a les màquines i més ràpids d'executar, mentre que els llenguatges d'«alt nivell» són més abstractes i més fàcils d'usar, però executen amb menys rapidesa.

Allen Downey, al seu llibre How To Think Like A Computer Scientist («Com pensar com un informàtic»),[5] escriu:

« Els detalls semblen diferents en llenguatges diferents, però unes poques instruccions bàsiques apareixen en gairebé tots els llenguatges:
  • entrada: obtenir dades des del teclat, arxiu, o algun altre dispositiu.
  • sortida: mostrar dades en la pantalla o enviar dades a un arxiu o un altre dispositiu.
  • aritmètica: realitzar operacions aritmètiques bàsiques, com sumes i multiplicacions.
  • execució condicional: cercar determinades condicions i executar la seqüència apropiada de instruccions.
  • repetició: realitzar una acció repetidament, en general amb alguna variació.
»

Molts llenguatges de programació proporcionen un mecanisme per cridar funcions proporcionades per llibreries. Sempre que les funcions en una llibreria segueixin les convencions de temps d'execució apropiades (per exemple, el mètode de passar arguments), llavors aquestes funcions es poden escriure en qualsevol altre llenguatge.

Referències

  1. Ma. Jesús Marco Galindo; Jordi Àlvarez Canal i Josep Vilaplana Pastó. «Fonaments de programació» (PDF). Universitat Oberta de Catalunya, febrer 2004. [Consulta: 10 març 2010].
  2. Paul Graham. «Hackers and Painters» (en anglès), 2003. [Consulta: 24 octubre 2010].
  3. Kenneth E. Iverson, l'autor del llenguatge de programació APL, va creure que la hipòtesi Sapir-Whorf s'aplicava a llenguatges de programació (sense arribar a esmentar la hipòtesi pel nom). La seva conferència al Premi Turing, «Notation as a tool of thought», va ser dedicada a aquest tema, argumentant que notacions més poderoses ajudaven a pensar en algorismes informàtics. Iverson K.E.,«Notation as a tool of thought», Communications of the ACM, 23: 444-465 (agost de 1980).
  4. Alan Turing. «On Computable Numbers with an Application to the Entscheidungsproblem» (PDF) (en anglès). [Consulta: 13 novembre 2010].
  5. Allen Downey. «How To Think Like A Computer Scientist» (en anglès). [Consulta: 14 novembre 2010].

Enllaços externs

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Programació d'ordinadors