{"id":12806,"date":"2019-10-04T07:30:43","date_gmt":"2019-10-04T05:30:43","guid":{"rendered":"http:\/\/www.unilab.eu\/?p=12806"},"modified":"2019-10-03T17:13:03","modified_gmt":"2019-10-03T15:13:03","slug":"bug","status":"publish","type":"post","link":"https:\/\/www.unilab.eu\/it\/articoli\/coffee-break-it\/bug\/","title":{"rendered":"Storia di un baco: quale, e quando si \u00e8 manifestato il primo Bug"},"content":{"rendered":"<p>Il <strong>bug<\/strong> \u00e8 un termine inglese che significa letteralmente (piccolo) insetto. In informatica, come \u00e8 risaputo, indica la presenza di un errore di programmazione in un software, che ne compromette in parte (errore di lieve entit\u00e0) o in toto (errore grave) il corretto funzionamento.<\/p>\n<p><strong>Non esistono software esenti da bug<\/strong>, per questo motivo le societ\u00e0 che li sviluppano rilasciano ciclicamente aggiornamenti per correggerli e migliorarne le prestazioni. In rari casi il termine bug pu\u00f2 anche riferirsi a malfunzionamenti o difetti dell\u2019<strong>hardware<\/strong> (indimenticabile il caso del primo microprocessore Pentium incapace di calcolare correttamente i valori decimali).<\/p>\n<p><strong>Il primo bug della storia<\/strong><\/p>\n<p>Nonostante il termine bug sia apparso nello Standard Electrical Dictionary del 1892, l\u2019origine della parola, applicata all\u2019informatica, \u00e8 riconducibile a un simpatico aneddoto accorso nel 1974. Era il 9 Settembre e la giovane ufficiale della Marina statunitense <strong>Grace Hopper<\/strong> era al lavoro con alcuni colleghi sul Mark II (uno dei primi computer elettromagnetici).<\/p>\n<p>A quei tempi i computer erano contenuti in enormi armadi e funzionavano grazie a componenti elettroniche di dimensioni piuttosto importanti. Fu proprio durante lo sviluppo del <em>Computing Laboratory<\/em> di Harvard che uno dei colleghi della Hopper cominci\u00f2 a segnalare un <strong>comportamento anomalo della macchina<\/strong>, che restituiva errori inspiegabili.<\/p>\n<p>Il team decise quindi di smontare pezzo per pezzo il calcolatore per identificare l\u2019origine del problema. Con grande stupore dei presenti, si scopr\u00ec che gli errori nei calcoli erano stati causati da una <strong>piccola falena<\/strong> incastratasi fra due relay.<\/p>\n<p>Nel diario di lavoro ufficiale del 9 Settembre 1947 (attualmente conservato allo Smithsonian National Museum of American History), si pu\u00f2 chiaramente leggere: \u201c<em>Primo caso reale di ritrovamento di un bug<\/em>\u201d con a fianco la piccola falena incollata. Questo \u00e8 il momento storico in cui il termine bug ha assunto il suo <strong>significato moderno<\/strong>.<\/p>\n<p>Per completezza di informazione, per\u00f2, va detto che i bug (pur non essendo definiti con tale termine) erano gi\u00e0 conosciuti in un\u2019epoca antecedente ai fatti narrati. Nel 1844 <strong>Ada Lovelace<\/strong> faceva notare come fosse del tutto impossibile creare un programma privo di errori, mentre nel 1878 <strong>Thomas Alva Edison<\/strong> spiegava in una lettera a un amico alcuni errori della Macchina Analitica, riferendosi a essi come <em>piccoli bug<\/em>.<\/p>\n<p><strong>Tipologie di bug<\/strong><\/p>\n<p>Programmare migliaia di linee di codice non \u00e8 certo una passeggiata e produrre degli errori nel corso della stesura del codice sorgente \u00e8 pi\u00f9 che normale. Esistono moltissime <strong>tipologie di bug<\/strong> che variano a seconda della natura dell\u2019errore:<\/p>\n<ul>\n<li>l\u2019<strong>errore di sintassi <\/strong>\u00e8 fra i pi\u00f9 comuni e pu\u00f2 essere causato da un\u2019errata digitazione di una parola chiave (errore di ortografia) o da un uso scorretto dei simboli chiave per il linguaggio di programmazione utilizzato. \u00c8 tendenzialmente di facile risoluzione;<\/li>\n<li>l\u2019<strong>errore di logica <\/strong>viene commesso in fase di progettazione dell\u2019algoritmo a causa di un\u2019errata interpretazione dei processi logici per risolvere un determinato problema. La risoluzione richiede, spesso, la modifica di un\u2019intera porzione di codice;<\/li>\n<li>l\u2019<strong>errore di runtime <\/strong>si verifica quando il programma viene eseguito e, nonostante il codice e la logica siano corrette, viene comunque restituito un errore. Il problema dipende da un tentativo di scrittura dello stesso in aree della memoria non consentite. La risoluzione \u00e8 complessa e richiede un\u2019analisi pi\u00f9 approfondita.<\/li>\n<\/ul>\n<p>Nonostante esistano metodologie di programmazione e linee guida atte a ridurre la possibilit\u00e0 di incappare in questi sbagli, debellare del tutto il problema spetta al <strong>debugging<\/strong>. Questo procedimento \u00e8 un insieme di passaggi, il cui scopo \u00e8 quello di riprodurre il bug, cos\u00ec da identificarne l\u2019origine e procedere alla sua correzione.<\/p>\n<!--themify_builder_content-->\n<div id=\"themify_builder_content-12806\" data-postid=\"12806\" class=\"themify_builder_content themify_builder_content-12806 themify_builder tf_clear\">\n    <\/div>\n<!--\/themify_builder_content-->\n","protected":false},"excerpt":{"rendered":"<p>Il bug \u00e8 un termine inglese che significa letteralmente (piccolo) insetto. In informatica, come \u00e8 risaputo, indica la presenza di un errore di programmazione in un software, che ne compromette in parte (errore di lieve entit\u00e0) o in toto (errore grave) il corretto funzionamento.<\/p>\n","protected":false},"author":10,"featured_media":12809,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"Il bug \u00e8 un termine inglese che significa letteralmente (piccolo) insetto. In informatica, come \u00e8 risaputo, indica la presenza di un errore di programmazione in un software, che ne compromette in parte (errore di lieve entit\u00e0) o in toto (errore grave) il corretto funzionamento.","_seopress_robots_index":"","footnotes":""},"categories":[46],"tags":[],"class_list":["post-12806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coffee-break-it","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"builder_content":"","_links":{"self":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/12806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/comments?post=12806"}],"version-history":[{"count":0,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/12806\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media\/12809"}],"wp:attachment":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media?parent=12806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/categories?post=12806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/tags?post=12806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}