Artikulu hau "Kalitatezko 1.000 artikulu 12-16 urteko ikasleentzat" proiektuaren parte da

Programazio

Wikipedia, Entziklopedia askea
Jump to navigation Jump to search

|[ Programazioa, programa informatiko bat garatzeko egiten den prozesua da eta Software baten sorkuntzaren atal bat da. Software sorkuntzaren prozesua, zazpi ataletan banatzen da.

  1. Plangintza
  2. Analisia
  3. Diseinua
  4. Programazioa
  5. Proba eta zuzenketa
  6. Mantentze-lana

Programazioaren prozesua, bi erreminta erabiliz bete daiteke. Alde batetik, kodea idazten usten duen erreminta bat erabiliz (edozein lengoaian egon daitezke, C++, Java, Paython, etab.). Bestalde, erreminta bat makinaren lengoaiara itzultzeko. Hau da, idatzitako instrukzioak kode bitarrera itzultzea, mikroprozesadorea instrukzio horiek prozesatzeko.

Historia[aldatu | aldatu iturburu kodea]

Informatikaren eta Teknologiaren historia[aldatu | aldatu iturburu kodea]

Informatikaren eta Teknologiaren historia guztian zehar gertaera edo sorkuntza batzuk zerikusia izan dute programazioaren hedapenarekin.

XIX. programazioaren historia hasi:

XX. mendean hainbat aurrerakuntza eman ziren:

Programazio lengoaiaren historia eta aurrerapenak[aldatu | aldatu iturburu kodea]

Programa bat sortzeko, konputagailua interpretatu ahal izateko eta bertan dauden instrukzioak ordenagailuak egiteko, programazio-lengoaian idatzita egon behar dira instrukzioak.

Goi-mailako programazio-lengoaiaren adibidea

Hasiera batean, ordenagailuak bakarrik ulertzen zutenlengoai espezifiko batean. Hau da, maila baxuenean. Lengoaia hau oso konplexua zen programatzeko, sistema bitarrezko katez eginda.

Orduan, lan hau errazteko adituek erabaki zuten zeroz eta batez sortutako sekuentziak hitzen laburduraz aldatzea. Hortaz, Assembly edo Mihiztadura-lengoaia sortu zen. Adibidez, bi zenbaki gehitzeko ADD kodea erabili daiteke.

Mihiztadura-lengoaian eta makina-lengoaian programatzea gauza bera da, dena dela programatzaileentzat errazagoa da komandoen letrak gogoratzea, zenbaki bitarren kateak baino.

Ordenagailuek gauza gero eta konplexuagoak egiten zituzten. Beraz, goi-mailako programazio-lengoaiak sortu ziren. Esate baterako, bi zenbakien batuketa egiteko instrukzio batzuk behar ziren, baina goi-mailako programazio-lengoaian instrukzio batekin lor daiteke.

Programa bat amaitzean. Mihiztadura-lengoaian edo goi-mailako programazio-lengoaian badago konpilatu behar da, hau da, makina-lengoaiara bihurtzea sortutako kodea[1]. Beraz, beharrezkoa da hau egitea programa erabiliko duen ordenagailua edo makina ulertzeko. Horrez gain, batzuetan beharrezkoa da beste fase bat igarotzea. Lotura fasea esaten zaio; alegia, kodeari behar dituen baliabideak liburutegitik eransten zaizkio.

Programazioa belaunaldiz ere antolatu daiteke.

  • Lehenengo belaunaldia, lehenengo ordenagailu elektrikoekin etorri zen. Memoria programatzeko beharrarekin.
  • Bigarren belaunaldia, Mihiztadura-lengoaiaren hedapena.
  • Hirugarren belaunaldia, algoritmo konplexuagoak.
  • Laugarren belaunaldia, goi-mailako programazio-lengoaiak.
  • Bosgarren belaunaldia, adimen artifizialaren programazio-lengoaiak.

Programazio-lengoaiaren mailak[aldatu | aldatu iturburu kodea]

Lehen aipatu den bezala programazioren lengoaiak hainbat mailetan sailkatzen dira, haren ezaugarrien arabera.

Behe-mailako programazio-lengoaiak: programazio-lengoaia honen instrukzioak euskarri fisikoan dute kontrola edo eragina eta ordenagailuen egitura fisikora baldintzatuta daude. Behe hitza ez dio erreferentzia egiten lengoaiaren potentziari edo kalitateari, lengoaiaren eta hardwareen abstrakzio murriztuari baizik.

Goi-mailako programazio-lengoaiak: programazio-lengoaia hau uzten dio programatzaileari instrukzioak hitzen edo adierazpen sintaktikoen bidez idaztea, Horregatik goi-mailakoak direla esaten da. Maila honetako adibide batzuk hauek izan daitezke: Ada, BASIC, C, C++, C#, COBOL, Common Lisp, Fortran, , Haskell, Java, JavaScript, Mathematica, Pascal, Perl, PHP, Prolog, Python, R, Ruby, Visual Basic.


  • Ezaugarriak:
    • Datuak eta aginduak karaktere alfanumerikoen bidez aipa daitezke, hau da, ez kode bitarrean.
    • Datuak hartzeko aldagaiak defini daitezke.
    • Agindu eta datu indartsuagoak eta landuagoak erabil daitezke, hau da, ez eragiketa sinpleak soilik.
    • Bateragarria da, hainbat ordenagailu mota desberdinetan erabili daitezke.
    • Zuzentzeko errazagoak dira. Beraz, denbora aurrezten du beste behe-mailako programazio-lengoaiekiko.
    • Oharrak txerta daitezke programa hobetu ulertzeko.

Laburbilduz, Behe-mailako programazio-lengoaiak makinaren prozesamendu lengoaiaz hurbilago daude eta Goi-mailako programazio-lengoaiak baizik, programatzaileen lengoaiaz hurbilago daude.

Programa bat eraikitzeko faseak[aldatu | aldatu iturburu kodea]

Problema bat emanda hauek dira programa bat eraikitzeko faseak:

  • Zehaztapena (edo espezifikazioa)

Ondo zehaztu zeintzuk diren edukiko ditugun datuak eta zeintzuk diren lortu beharko ditugun emaitzak. Zer dira? Zenbaki osoak? Zenbaki errealak? Hitzak? Zer propietate betetzen dituzte datuek? Eta emaitzek?

  • Diseinua (algoritmoa)

Zehaztapenak definitzen du ZER lortu behar dugun. Algoritmoak NOLA lor ditzakegun emaitzak. Algoritmoak lagunduko digu gero programako agindu-sekuentzia eraikitzen

  • Programa idaztea

Konputagailuak exekutatuko duen agindu sekuentzia da. Programazio-lengoaia bat erabili beharko da aginduak definitzeko, lengoaia horren arau sintaktikoak errespetatuz, noski.

  • Proba

Probatu behar da datuak edozein direla programak emaitza zuzenak lortuko dituela. Datuen balio esanguratsuekin proba multzo bat prestatu behar da. Eta gero kasu horietan guztietan probatu ea emaitza zuzenak lortzen diren.

  • Erabilera

Probak ondo bukatuz gero, programa prest dago erabilia izateko.

Lexikoa eta programazioa[aldatu | aldatu iturburu kodea]

Programazioa, arau eta hizkuntza hizkuntza natural antza (ingelesez) duten aginduen, adierazpenen, instrukzioen eta komandoen multzoek osatzen dute. Elementu horiek anbiguotasun txikia izan behar dute, programazio-lengoaiak zenbat eta anbiguotasun gutxiago izan, orduan eta eraginkorragoa delako. Premisa horretatik abiatuta, bitarra da lengoaiarik eraginkorrena, ez baitu anbiguotasunik .

Goi-mailako programazio-lengoaietan hainbat elementu bereizten dira, eta horien artean lengoaiaren berezko lexikoa eta arau semantiko eta sintaktikoak daude. Lehenengo konputagailuarentzat diseinatutako goi-mailako programazio-lengoaia Plankalkül (1948) izan zen, Konrad Zuse-k (1910-1995) sortua. Hala ere, berea ekarpen teorikoa izan zen batez ere, programazio-lengoaia hori ez baitzuen inplementatu.

Zabalki hedatutako lehenengo goi-mailako programazio-lengoaia Fortran izan zen, 1957. urtean IBMk garatutakoa. Bitartean, Algol lengoaiak, 1958. eta 1960. urteetan definitutakoa, kontzeptu berriak sartu zituen, hala nola errekurtsioa, programazio-egiturako hainbat kontzeptu eta abar. Garai horretan, COBOLek erregistroak barruratu zituen eta berdin egin zuen LISPek lambda-abstrakzioarekin.


Lehenengo goi-mailako programazio-lengoaiak 1950eko hamarkadan diseinatu ziren. Gaur egun mota horretako ehunka lengoaia existitzen dira, adibidez:

Goi-mailako programazio-lengoaiaren adibidea
  • Ada
  • Algol
  • BASIC
  • COBOL
  • C
  • C++
  • Delphi
  • FORTRAN
  • Java
  • LISP
  • Pascal
  • Perl
  • php
  • Prolog
  • Python

Programak eta algoritmoak[aldatu | aldatu iturburu kodea]

Algoritmo bat da arazo bat konpontzeko urratsez urrats jarraitu behar den, antolatuta dagoen eta finitua den argibideen sekuentzia, anbiguotasunik ez duena. Oro har, programa batek algoritmo bat edo gehiago inplementatzen du, hau da, programazio-lengoaia batera itzultzen du. Algoritmo bat era ugaritan adieraz daiteke: grafikoki (fluxu-diagrama modura), kode moduan (sasikodea) edo era esplikatzaile batean (programazio-lengoaia).

Algoritmo guztiak honako parteez osatuta egon behar dira beti:

  • Input edo sarrera. Algoritmoak funtzionatzeko behar dituen datuen sarrera.
  • Prozesua. Algoritmoak sartutako inputekin gauzatuko duen eragiketa logikoa.
  • Output edo irteera. Algoritmoaren egikaritzea amaitzean input-ak erabiliz egindako prozesuaren emaitzak.

Gehienetan programak moduluak deitutako atal txikiagotan banatzen dira. Moduluen erabilerarekin algoritmoen zailtasuna murrizten da eta ondorioz errazagoa da programa garatzea. Prozesu horri beheranzko analisia (Top-Down) deritzo eta asko erabiltzen den jarduera da.

Niklaus Wirth-en arabera programa bat algoritmoz eta datuen estrukturaz osatua dago.

Programazioak ikuspegi edo paradigma anitz jarrai ditzake, hau da, arazo baten konponbidea aurkitzeko modu ezberdinak daude. Programazioaren paradigmarik nagusienak hauek dira:

Programazio paradigma konkretu batekin lan egin daiteke, baina praktikan ohikoa da horiek nahastea (multiparadigma).

Informatikan programa esaten dugunean software bati buruz hitz egiten ari gara. Zenbait programa mota bereiz ditzakegu. Oinarrizko software-ak, adibidez, pertsona bati ematen dio konputagailuaren osagai fisikoen (hardware) gaineko kontrola izateko aukera. Windows edo Linux sistema eragileak oinarrizko software-aren taldean sartzen dira.

Bulegotika programak ere oso garrantzitsuak dira, horien artean ondorengo testu prozesadoreak bereizten dira: Microsoft Word eta Apache OpenOffice Writer; kalkulu-orriak, hala nola Calc, Lotus 1-2-3 eta Microsoft Excel; eta posta elektronikoaren kudeaketa ahalbidetzen duten Lotus Notes, Microsoft Outlook eta Eudora.

Konpilazioa[aldatu | aldatu iturburu kodea]

Goi-mailako lengoaian idatzitako programazio-lengoaia (ordenagailuarentzat ulerterraza dena) jatorrizko programa deitzen da eta ezin da zuzenean ordenagailuan egikaritu. Ohiko aukera modulu bat lortuz programa konpilatzea da, hala ere; modu zuzenagoan exekutatu daiteke interpretatzaile informatiko baten bidez. Programaren iturburu-kodeak itzultze-prozesu bat pasatu behar du makina-lengoaia edo bitarteko kodea bihurtzeko, objektu deitzen den modulu bat sortuz. Prozesu horri konpilazio deritzo.

Normalean programa exekutagarri (.exe modukoa Microsoft Windows-erako edo DOS) baten sorrera bi urratsez osatuta dago. Lehenengo urratsa konpilazioa da, horrek testu-artxibo batean gordetako programazio-lengoaian idatzita dagoen iturburu-kodea itzultzen du behe-mailako kode batera (gehienetan objektu-kode batera eta ez zuzenean makina-lengoaiara). Bigarren urratsa lotura deitzen da, horrekin lehenago egindako konpilaziotik sortutako fitxategi eta azpiprograma guztien behe-mailako kodea lotzen da, eta konpiladorearen liburutegian dauden funtzioen kodea gehitzen. Modu horretan exekutagarria sistema eragilearekin zuzenean komunika daiteke eta horrela, azkenean, objektu-kodea makina-kode bihurtzen da.

Bi urrats horiek banaka egin daitezke, konpilazio fase bakoitzaren emaitza objektu artxiboetan biltzen da (.o modukoa Unix-rako, .obj moduko MS-Windows-rako, DOS); ondorengo faseetan lotzeko edo zuzenean exekutagarri bat sortzeko. Konpilazio fasea bakarrik gorde daiteke denboraldi baterako. Programa batek zenbait lengoaiatan idatzitako zatiak eduki ditzake, adibidez, Java, C, C++ eta mihiztatzaile. Zati horiek banaka konpilatu daitezke eta gero elkarrekin lotu modulu exekutagarri bakarra lortzeko.

Software-aren ingeniaritza eta programazioa[aldatu | aldatu iturburu kodea]

Programa informatiko baten sorrera programazioarekin identifikatzen da gehienetan. Horrek balio du programa txikiak egiten direnean, erabilera pertsonalerako, baina ez da betetzen proiektu handiekin aritzean.

Ingeniaritzaren ikuspuntutik, hauek dira software baten sorkuntza-prozesu batean zehar jarraitu behar diren ezinbesteko urratsak:

  1. Arazo baten irtenbidea lortzeko programa baten beharra antzeman edo ataza baten automatizazioaren aukera identifikatu.
  2. Programaren betebeharrak bildu. Argi geratu behar da bere eginkizuna zein den eta zertarako erabiltzen den.
  3. Programaren betebeharren analisia egin. Ondo zehaztu behar da zein atazak burutu behar dituen. Programa horren baliagarritasuna egiaztatzen dituzten probak fase honetan zehaztu ahal dira.
  4. Programaren arkitektura diseinatu. Programa zati txikiagotan banatu behar da, zailtasun onargarria dituzten parteetan.
  5. Programa inplementatu. Prozesu hori burutzeko diseinu xehatua egin behar da, programaren funtzionamendu guztia zehaztuz. Ondoren, kodifikazioa (programazioa zentzu hertsian esanda) berehalakoa izan beharko zen.
  6. Programa probatu. Betebeharren analisian zehaztu diren probak gainditzen dituela egiaztatu.
  7. Programa ezarri (instalatu). Hori egiteko programa abian jarri behar da behar dituen osagaiekin batera (datu-baseekin, komunikazio-sareekin, etab.)

Software-aren ingeniaritza programaren diseinu eta plangintzaren urratsetan ardazten da. Antzina programatzaile baten betebeharra (artisau-programazioa) kodea idaztean bakarrik oinarritzen zen, betebeharren jakintzarekin soilik eta diseinu eta analisiren fase xumearekin.

Programazioaren helburua[aldatu | aldatu iturburu kodea]

Programak kalitatekoak izateko, bete behar dituen faktore batzuk zehazten dira.

  • Zuzentasuna: programa bat zuzena den adierazteko, garapenean bere funtzionamendua zehaztu behar da. Programa amaitzean konparatu behar da zer egiten duen, hasieran adierazi denarekin.
  • Argitasuna: oso garrantzitsua da programa argi eta irakurterraz izatea. Etorkizunean bere garapena eta mantentze-lan errazteko. Beste alde batetik, programa bat sortzean saiatu behar da egitura erraza eta koherentea izatea, baita programazioaren estiloa zaindu ere. Horrela programatzailearen lana errazten da. Bai sorkuntzaren fasean naiz eta geroko fasetan (akatsen zuzenketan, aldaketetan, garapenean). Honen garrantzia dator, fase bakoitza programatzaile desberdin batek egin dezakeelako. Helburu hau betetzeko gehien erabiltzen den erreminta, iruzkinezko lerroak erabiltzea da.
  • Eraginkortasuna: programa zuzena izan arren, beharrezkoa da bere helburua ahal den denbora gutxienean betetzea. Horrez gain, erabiltzen dituen baliabideak era eraginkorrean erabiltzea. Beraz, denbora eta memoria espazio ahal den gutxien erabiltzea programa bat eraginkorra egingo du.
  • Portabilitatea: programa sortu ez den plataforma batean (hardware edo software) egikaritzeko ahalmena duenean. Hau ezaugarri oso nahigarria da, adibidez sistema eragile batean sortutako programa beste batean ere egikaritu daiteke.
  • Sendotasuna: programak arazoak izan dezakete akatsengatik eta programa prest egon behar da arazoak ez izateko.

Erreferentziak[aldatu | aldatu iturburu kodea]

  1.   Camarasa, Josep María; Amigó, Jean Jacques (1993-12-30) «Salvadorianae. I. La correspondència de Pere Barrère i Volar (Perpinyà 1690 - 1755) amb Josep Salvador i Riera conservada a la biblioteca Salvador de l'Institut Botànic de Barcelona» Collectanea Botanica (0): 73–104 doi:10.3989/collectbot.1993.v22.84 ISSN 1989-1067 . Noiz kontsultatua: 2018-11-27 .

Bibliografia[aldatu | aldatu iturburu kodea]

Ikus, gainera[aldatu | aldatu iturburu kodea]

Wikimedia Commonsen badira fitxategi gehiago, gai hau dutenak: Programazio Aldatu lotura Wikidatan