programazio
- Orokorrak
- en programming
- es programación
- fr programmation
programazio
Ez dago emaitzarik
Bilatutako terminoa ez dago hiztegian.
- ↑ Elhuyar Fundazioa. Programazio. (Noiz kontsultatua: 2019-09-07).
- ↑ (Gaztelaniaz) López, José Luis. (2019-04-30). «Aprender por internet: cursos de programación y retail online» José Luis López (Noiz kontsultatua: 2019-12-14).
- ↑ Koetsier, Teun. (2001-05-01). «On the prehistory of programmable machines: musical automata, looms, calculators» Mechanism and Machine Theory 36 (5): 589–603. doi: . ISSN 0094-114X. (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) Long, Jason; Murphy, Jim; Carnegie, Dale; Kapur, Ajay. (2017/08). «Loudspeakers Optional: A history of non-loudspeaker-based electroacoustic music» Organised Sound 22 (2): 195–205. doi: . ISSN 1355-7718. (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) Banū. (1978). The Book of Ingenious Devices. doi: . (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) The Genius of Arab Civilization: Source of Renaissance. MIT Press 1983-01-01 ISBN 978-0-262-08136-8. (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) Fowler, Charles B.. (1967-10). «The Museum of Music: A History of Mechanical Instruments» Music Educators Journal 54 (2): 45–49. doi: . ISSN 0027-4321. (Noiz kontsultatua: 2019-12-14).
- ↑ «articles58» web.archive.org 2007-06-29 (Noiz kontsultatua: 2019-12-14).
- ↑ (Gaztelaniaz) Farjeat, Luis Xavier López. «Philosophica: Enciclopedia filosófica on line — Voz: Al-Kindī» www.philosophica.info (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) Dooley, John F.. (2013). A Brief History of Cryptology and Cryptographic Algorithms. , 12–3 or. ISBN 9783319016283..
- ↑ Fuegi, J.; Francis, J.. (2003-10). «Lovelace Babbage and the creation of the 1843 'notes'» IEEE Annals of the History of Computing 25 (4): 16–26. doi: . ISSN 1934-1547. (Noiz kontsultatua: 2019-12-14).
- ↑ (Gaztelaniaz) «Ada Lovelace: la primera programadora» La Vanguardia 2019-06-29 (Noiz kontsultatua: 2019-12-14).
- ↑ (Ingelesez) Levenez, Eric. (PDF) Computer Languages History. small diagram.. (Noiz kontsultatua: 2019-09-11).
- ↑ 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 22 (0): 73–104. doi: . ISSN 1989-1067. (Noiz kontsultatua: 2018-11-27).
- ↑ Watt, David Anthony.. ([1996]). ADA lengoaia eta metodologia. Servicio Editorial de la Universidad del País Vasco = Euskal Herriko Unibertsitateko Argitalpen Zerbitzua ISBN 8475858651. PMC 434213410. (Noiz kontsultatua: 2019-09-06).
- ↑ Alegria, Iñaki.. ([1995]). C programazio-lengoaia. Elhuyar Kultur Elkartea ISBN 8487114032. PMC 431789020. (Noiz kontsultatua: 2019-09-06).
- ↑ Informatikaren oinarriak C lengoaian ebatzitako problemak : industria ingeniaritza teknikoko eta industria graduko ikasleei zuzendua. Servicio Editorial de la Universidad del País Vasco = Euskal Herriko Unibertsitateko Argitalpen Zerbitzua 2010 ISBN 9788498604641. PMC 776669615. (Noiz kontsultatua: 2019-09-06).
- ↑ Bastarrika, Juan Ramon; Sarasola, Kepa. (1991). LISP: programazio-lengoaia. Udako Euskal Unibertsitatea ISBN 8486967325. PMC 907327642. (Noiz kontsultatua: 2019-09-06).
- ↑ Astigarraga Pagoaga, Aitzol.; Sarasola, Kepa. (2009). TAPE: testu-analisirako PERL erremintak. Udako Euskal Unibertsitatea ISBN 9788484382331. PMC 863215889. (Noiz kontsultatua: 2019-09-06).
- ↑ Alegria Loinaz, Iñaki; Perez de Viñaspre, Olatz; Sarasola, Kepa. (2016). Python programazio-lengoaia.. UEU eta UPV/EHU ISBN 9788490824405. PMC 1019651201. (Noiz kontsultatua: 2019-09-06).
- ↑ Arruabarrena, Rosa.. (1997). Algoritmika. Udako Euskal Unibertsitatea ISBN 8486967821. PMC 52409142. (Noiz kontsultatua: 2019-09-06).
- ↑ Díaz de Ilarraza Sánchez, Arantza.; Sarasola, Kepa. (1999). Oinarrizko programazioa : ariketa bilduma. Udako Euskal Unibertsitatea ISBN 8484380025. PMC 52408737. (Noiz kontsultatua: 2019-09-06).
- ↑ Sarasola, Kepa.. (1984). Programatzeko algoritmoak. Udako Euskal Unibertsitatea ISBN 8439819714. PMC 433751095. (Noiz kontsultatua: 2019-09-06).
- ↑ Zubizarreta Aizpuru, Jose Ramon.. (2006-2008). Softwarearen ingeniaritza. Udako Euskal Unibertsitatea ISBN 8484380858. PMC 434510969. (Noiz kontsultatua: 2019-09-06).
- ↑ Zubizarreta Aizpuru, Jose Ramon.. (2006-2008). Softwarearen ingeniaritza. Udako Euskal Unibertsitatea ISBN 9788484380900. PMC 863215157. (Noiz kontsultatua: 2019-09-06).
- ↑ a b Programen espezifikazio, egiaztapen eta eratorpen formala. Udako Euskal Unibertsitatea 2016 ISBN 9788484385905. PMC 974392192. (Noiz kontsultatua: 2019-09-06).
- ↑ a b Arregi, Xabier.. (1993). Programen egiaztapena eta eratorpena. Udako Euskal Unibertsitatea ISBN 8486967503. PMC 907305093. (Noiz kontsultatua: 2019-09-06).
Programazio
Programazioa, programa informatiko bat garatzeko egiten den prozesua da. Ordenagailuetarako programen kodea idatzi, probatu, araztu eta mantentzeko prozesua da.[1] Programa informatiko bat ondo sortzeko kontuan hartu behar den metodologia aztertzen duen diziplinari ere programazioa esaten zaio.
Orokorrean, bizitza arruntean programatzea esaten denean tarea bat planifikatzea adierazi nahi da. Informatikan programatzea zera da, konputagailuari adieraztea zer egin behar duen eta nola.[2]
Gailu programagarriak duela urte askotatik existitu izan ohi dira. Bederatzi garren mendean, musika sekuentziadore bat inbentantua izan zen "Banu Musa" anai pertsiarrengandik, zeintzuk txirula mekaniko automatiko bat deskribatu zuten Book of Ingenious Devices liburuan.[3][4][5]
1206. urtean Al-Jazari[6] arabiarrak bateria programagarri bat sortu zuen non musika mekaniko automatikoa sortu zezakeen erritmo desberdinak eta tamboreen patroi desberdinak jotzearen poderioz, leben eta klabijen bitartez.[7][8]
Kodea hausteko algoritmoak mendeetan zehar ere existitu dira. IX mendean, Al-Kindi[9] matematikari arabarrak kodetutako kodea deszifratzeko algoritmo kriptografikoa deskribatu zuen, A Manuscript On Deciphering Cryptographic Messages liburuan. Maiztasun analisiaren bidez, kriptoanalisiaren lehen deskribapena eman zuen, kodeketaren algoritmo zaharrena.[10]
Lehenengo programa informatikoa 1843koa da, orokorrean, Ada Lovelace matematikariak Bernoulli zenbakien sekuentzia kalkulatzeko algoritmoa argitaratu zuenean, Charles Babbageren Motor Analitikoak burutzeko.[11][12]
Programa bat sortzeko, konputagailua interpretatu ahal izateko eta bertan dauden instrukzioak ordenagailuak egiteko, programazio-lengoaia batean idatzita egon behar dira instrukzio horiek.
Hasiera batean, ordenagailuek oso lengoaia sinple batean bakarrik ulertzen zuten, ordenagailuaren makina-lengoaian. Lengoaia hori baina oso konplexua zen programatzeko, bai datuak bai instrukzioak sistema bitar irakurgaitza erabiliz adierazi behar ziren.
Orduan, lana erraztearren adituek zeroz eta batez sortutako sekuentzia amaitezin haiek hitz-laburduren bidez erabili ahal izatea asmatu zuten. Hortaz, Ensabladorea edo Mihiztadura-lengoaia sortu zen. Adibidez, bi zenbaki gehitzeko ADD kodea erabil zitekeen.
Mihiztadura-lengoaian eta makina-lengoaian programatzea funtsean gauza bera da, baina programatzaileentzat errazagoa da komandoen letrak gogoratzea, zenbaki bitarren kateak baino.
Ordenagailuek gauza gero eta konplexuagoak egiten zituztenez, mihiztadura-lengoaian ere neketsua zen programa luzeak sortzea. Beraz, goi-mailako programazio-lengoaiak sortu ziren. Esate baterako, bi zenbakien batuketa egiteko instrukzio batzuk behar ziren mihiztadura lengoaian, baina goi-mailako batekin instrukzio bakar batekin lor daiteke.
Programa bat amaitzean bai mihiztadura-lengoaian bai goi-mailako programazio-lengoai batean idatzita badago, kasu bietan konpilatu egin beharko da, hau da, sortutako kodea makina-lengoaiara itzuli beharko da.[14] Beraz, beharrezkoa da hori egitea programa erabiliko duen ordenagailuak edo makinak uler dezan. Horrez gain, batzuetan beharrezkoa da beste fase bat igarotzea. Lotura fasea esaten zaio; alegia, kodeari behar dituen baliabideak liburutegitik eransten zaizkio.
Geroago, hardwarearekin bezala, softwarearen garapen historikoa (programazioarena) ere hainbat belaunalditan antolatu izan da:
Informatikaren eta Teknologiaren historia guztian zeharreko gertaera edo asmakizun batzuek zerikusi estua izan dute programazioaren hedapenarekin. Hona hemen asmakizun horietako batzuk:
XIX. mendean programazioaren lehen urratsak:
XX. mendeko hainbat aurrerakuntza:
Programazioaren historiako lehenengo urrats haietan programazio-lengoaiak Behe- eta goi-mailakoen artean sailkatzen ziren, haien ezaugarrien arabera.
Programazio-lengoaia hauen instrukzioak euskarri fisikoan dute kontrola edo eragina, eta ondorioz ordenagailuaren egitura fisikoarekin zeharo lotuta daude. Beste konputagailu mota batean ez da izango erabilgarri. Behe hitzak ez dio lengoaiaren potentziari edo kalitateari erreferentzia egiten, lengoaia- eta hardware-abstrakzio murriztuari baizik.
Programazio-lengoaia hauek programatzaileari aukera ematen diote instrukzioak hitz edo adierazpen sintaktikoen bidez idazteko. Maila honetako adibide batzuk hauek izan daitezke: Ada,[15] BASIC, C,[16][17] C++, C#, COBOL, Common Lisp,[18] Fortran, , Haskell, Java, JavaScript, Mathematica, Pascal, Perl,[19] PHP, Prolog, Python,[20] R, Ruby, Visual Basic.
Laburbilduz, behe-mailako programazio-lengoaiak makinaren prozesamendu-lengoaiaz hurbilago daude eta goi-mailako programazio-lengoaiak, aldiz, programatzailearen lengoaiaz hurbilago daude.
Gehienetan, goi-mailako lengoaia bat erabiltzen denean, programaren idazketa bera bi urratsetan egiten da eta bi erreminta erabiliz. Alde batetik, kodea idazten laguntzen duen editore bat erabiltzen da. Eta bestalde, beste erreminta bat kode hori makina-lengoaiara itzultzeko, mikroprozesadorea agindu horiek prozesatu ahal ditzan.
Problema bat emanda hauek dira programa bat eraikitzeko faseak:
Ondo zehaztu zeintzuk diren programak hartuko dituen datuak eta zeintzuk diren lortu beharko diren emaitzak. Zer dira? Zenbaki osoak? Zenbaki errealak? Hitzak? Zer propietate betetzen dituzte datu horiek? Eta emaitzek?
Zehaztapenak definitzen du ZER lortu behar dugun. Algoritmoak NOLA lor ditzakegun emaitzak. [21][22][23] Ez dago programaetan bezala zorrotz jarraitu behar diren sintaxi-araurik; algoritmoa ez baita idazten makina batek uler dezan, beste pertsona batek baizik.
Algoritmoak lagunduko digu gero programako agindu-sekuentzia eraikitzen.
Konputagailuak exekutatuko duen agindu-sekuentzia da. Programazio-lengoaia bat erabili beharko da aginduak idazteko, lengoaia horren arau sintaktikoak errespetatu beharko dira (zer formatutan idatzi behar diren aginduak, nola idatzi zenbakiak,...), noski, bestela erroreak gertatuko dira konpilazio-fasean, agindu-sekuentzia automatikoki makina-lengoaiara itzultzerakoan.
Probatu behar da programak emaitza zuzenak lortuko dituela, datuak edozein direla .Datuen balio esanguratsuekin proba multzo bat prestatu behar da. Eta gero kasu horietan guztietan probatu ea emaitza zuzenak lortzen diren.
Probak ondo bukatuz gero, programa prest dago erabilia izateko.
Programa on baten ezaugarriak hauek izan behar dira:
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:
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:
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 LibreOffice Writer; kalkulu-orriak, hala nola Calc, Lotus 1-2-3 eta Microsoft Excel; eta posta elektronikoaren kudeaketa ahalbidetzen duten Thunderbird, Lotus Notes, Microsoft Outlook eta Eudora.
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.
Programa informatiko baten sorrera programaren idazketa hutsarekin identifikatzen da gehienetan. Horrek balio du programa txikiak egiten direnean, eta erabilera pertsonal hutserako, baina ez da hori bakarrik milaka agindu izango dituen proiektu handi batekin aritzean.
Ingeniaritzaren ikuspuntutik, hauek dira software baten sorkuntza-prozesu batean zehar jarraitu behar diren ezinbesteko urratsak:[24][25]
Software-ingeniaritza arloa programaren diseinu eta plangintzaren urrats horietan ardazten da. Aspaldian programatzaile baten betebeharra (artisau-programazioa) kodea idaztea baino ez zen, eta espezifikazio-, diseinu- eta analisi-fasea oso xumeak ziren.
Problema baten ebazpena lortzeko programa baten beharra antzeman, edo ataza baten automatizazioaren aukera identifikatu.
Programaren betebeharrak bildu. Espezifikazio formal batean argi geratu behar da bere eginkizuna zein den eta zertarako erabiltzen den.[26][27]
Programaren betebeharren analisia egin. Ondo zehaztu behar da zein atazak burutu behar dituen. Programa horren baliagarritasuna egiaztatzen dituzten probak fase honetan zehaztu ahal dira.
Programaren egitura diseinatu. Programa konplexu batek azpiprograma txikiagotan banatu behar da, horietako bakoitza independenteki definitu eta probatu ahal izango da gero (beheranzko diseinua).
Programa inplementatu. Prozesu hori burutzeko diseinu xehea egin behar da, programaren funtzionamendu guztia zehaztuz. Ondoren, kodifikazioa (programazioa zentzu hertsian esanda) berehalakoa izan beharko zen.
Programa probatu. Betebeharren analisian zehaztu diren probak gainditzen dituela egiaztatu.[26][27]
Programa ezarri (instalatu). Hori egiteko programa abian jarri behar da behar dituen osagaiekin batera (datu-baseekin, komunikazio-sareekin, etab.)
Wikipediarekin konexio arazoren bat gertatu da:
Wikipediako bilaketara joan