{"id":76903,"date":"2020-04-06T01:42:17","date_gmt":"2020-04-05T23:42:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix"},"modified":"2020-04-06T01:42:17","modified_gmt":"2020-04-05T23:42:17","slug":"samye-zamechatelnye-programmy-unix","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","title":{"rendered":"I programmi Unix pi\u00f9 straordinari","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>L'autore dell'articolo \u00e8 Douglas McIlroy, un matematico, ingegnere e programmatore americano. \u00c8 principalmente noto per lo sviluppo della pipeline nel sistema operativo Unix, per i principi della programmazione orientata ai componenti e per diverse utility originali: spell, diff, sort, join, speak, tr.<\/i> <\/p>\n<p>A volte ci si imbatte in programmi davvero straordinari. Ripensando al passato, ho stilato un elenco di vere gemme di Unix nel corso degli anni. In gran parte, si tratta di programmi piuttosto rari e non cos\u00ec essenziali. Ma ci\u00f2 che li distingue \u00e8 l'originalit\u00e0. Non riesco nemmeno a immaginare di aver avuto l'idea per uno di essi.<\/p>\n<p>Condividete quali programmi vi hanno sorpreso in questo modo?<\/p>\n<h1>PDP-7 Unix<\/h1>\n<p>\nPer cominciare, il sistema PDP-7 Unix stesso. La sua semplicit\u00e0 e potenza mi hanno spinto a passare da un potente mainframe a una minuscola macchina. Qui si trova l'essenza del file system gerarchico, una shell separata e la gestione dei processi a livello utente, qualcosa che Multics sui mainframe non \u00e8 riuscita a realizzare dopo centinaia di uomini\/anno di sviluppo. Gli svantaggi di Unix (come la struttura dei record nel file system) sono stati altrettanto istruttivi e liberatori quanto le sue innovazioni (come il reindirizzamento dell'input\/output nella shell).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>dc<\/h1>\n<p>\nLa libreria matematica per il calcolatore da tavolo con precisione variabile di Robert Morris utilizzava un'analisi inversa degli errori per determinare la precisione necessaria ad ogni passo per raggiungere la precisione desiderata dall'utente. Alla conferenza NATO del 1968 sulla ingegneria del software, nel mio intervento sui componenti software, ho proposto procedure di riferimento che possono fornire un risultato di qualsiasi precisione desiderata, ma non sapevo come implementarle nella pratica. dc rimane fino ad oggi l'unico programma di cui sono a conoscenza capace di ci\u00f2.<\/p>\n<h1>typo<\/h1>\n<p>\nIl correttore ortografico ordina le parole nel testo in base alla loro somiglianza con il resto del testo. Errori di battitura come &#8216;hte&#8217; tendono a trovarsi alla fine della lista. Robert Morris si vantava che il programma avrebbe funzionato altrettanto bene in qualsiasi lingua. Anche se il correttore ortografico non aiuta a trovare errori fonetici, si \u00e8 rivelato un vero e proprio tesoro per chi digita testo, portando molti benefici prima dell'emergere di controlli ortografici molto meno interessanti, ma pi\u00f9 accurati basati su dizionari.<\/p>\n<p>La typo \u00e8 sorprendentemente strutturata all'interno come all'esterno. L'algoritmo di misurazione della similarit\u00e0 si basa sulla frequenza di apparizione delle trigrammi, che vengono considerate in un array 26\u00d726\u00d726. Nella memoria minuscola, c'era a malapena spazio per i contatori a byte singolo, quindi \u00e8 stato implementato uno schema di compressione per numeri grandi in contatori piccoli. Per evitare il sovraccarico, i contatori venivano aggiornati su base probabilistica, mantenendo una stima del logaritmo del valore del contatore.<\/p>\n<h1>eqn<\/h1>\n<p>\nCon l'emergere della fotolibreria \u00e8 diventato possibile, ma terribilmente faticoso, produrre la notazione matematica classica. Lorinda Cherry ha deciso di sviluppare un linguaggio di descrizione di livello superiore e presto a lei si \u00e8 unito Brian Kernighan. Il loro brillante passo \u00e8 stato quello di esprimere la tradizione orale in forma scritta, quindi eqn si \u00e8 rivelato straordinariamente semplice da studiare. Il primo preprocessore del linguaggio di descrizione delle espressioni matematiche, eqn non \u00e8 stato praticamente migliorato da allora.<\/p>\n<h1>struttura<\/h1>\n<p>\nBrenda Baker ha avviato lo sviluppo del suo convertitore Fortan-to-Ratfor contro il consiglio del suo capo: me. Pensavo che questo potesse portare a una riorganizzazione speciale del testo sorgente. Sarebbe stato libero dai numeri degli operatori, ma per il resto non pi\u00f9 leggibile di un codice Fortran ben strutturato. Brenda ha dimostrato che mi sbagliavo. Ha scoperto che ogni programma Fortran ha una forma strutturata canonica. I programmatori preferivano la forma canonica piuttosto che quella che avevano originariamente scritto.<\/p>\n<h1>pascal<\/h1>\n<p>\nLa diagnostica della sintassi nel compilatore creato dal gruppo di Sue Graham a Berkeley era la pi\u00f9 utile di tutte quelle che avessi mai visto - e veniva eseguita automaticamente. In caso di errore sintattico, il compilatore propone di inserire un lessico per continuare l'analisi sintattica. Nessun tentativo di spiegare cosa non andasse. Con questo compilatore ho imparato Pascal in una sola sera, senza avere manuali a portata di mano.<\/p>\n<h1>parti<\/h1>\n<p>\nUn modulo nascosto all'interno del pacchetto WWB (Writer&#8217;s Workbench) <code>parti<\/code> Lorinda Cherry definisce le parti del discorso per le parole nel testo in inglese basandosi solo su un piccolo dizionario, regole di ortografia e grammatica. Sulla base di questa annotazione, il programma WWB fornisce indicatori stilometrici del testo, come la prevalenza di aggettivi, frasi subordinate e frasi complesse. Quando Lorinda ha dato un'intervista nel programma Today sul canale NBC e ha parlato dell'innovativa verifica grammaticale nei testi WWB, \u00e8 stata la prima menzione di Unix in televisione.<\/p>\n<h1>egrep<\/h1>\n<p>\nAl Aho si aspettava che il suo riconoscitore deterministico di espressioni regolari superasse il classico riconoscitore non deterministico di Ken. Sfortunatamente, quest'ultimo stava gi\u00e0 completando la sua scansione su espressioni regolari complesse mentre <code>egrep<\/code> costruiva il suo automa deterministico. Per vincere comunque questa corsa, Al Aho ha eluso la maledizione della crescita esponenziale della tabella degli stati dell'automa, inventando un modo per costruire al volo solo le voci della tabella che vengono effettivamente visitate durante il riconoscimento.<\/p>\n<h1>granchi<\/h1>\n<p>\nIl affascinante metaprogramma di Luca Cardelli per il sistema finestra Blit emetteva granchi virtuali che vagabondavano nel vuoto dello schermo, rosicchiando sempre di pi\u00f9 i bordi delle finestre attive.<\/p>\n<h1>Alcuni pensieri generali<\/h1>\n<p>\nAnche se non \u00e8 visibile dall'esterno, la teoria e gli algoritmi hanno giocato un ruolo cruciale nella creazione della maggior parte di questi programmi: typo, dc, struct, pascal, egrep. In realt\u00e0, ci\u00f2 che sorprende di pi\u00f9 \u00e8 proprio l'applicazione insolita della teoria.<\/p>\n<p>I creatori originali di quasi la met\u00e0 dell'elenco \u2014 pascal, struct, parts, eqn \u2014 erano donne, il che supera di gran lunga la quota demografica delle donne nell'ambito delle scienze informatiche.<\/p>\n<p><i>Douglas McIlroy<br \/>\nMarzo, 2020<\/i><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495550\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0443\u0433\u043b\u0430\u0441 \u041c\u0430\u043a\u0438\u043b\u0440\u043e\u0439\u00a0\u2014 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Unix, \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442: spell, diff, sort, join, speak, tr. \u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041f\u043e\u043a\u043e\u043f\u0430\u0432\u0448\u0438\u0441\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0436\u0435\u043c\u0447\u0443\u0436\u0438\u043d Unix \u0437\u0430 \u0432\u0441\u0435 \u0433\u043e\u0434\u044b. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0434\u043a\u0438\u0435 \u0438 \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-76903","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0443\u0433\u043b\u0430\u0441 \u041c\u0430\u043a\u0438\u043b\u0440\u043e\u0439 \u2014 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0430\u043c\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Unix | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0443\u0433\u043b\u0430\u0441 \u041c\u0430\u043a\u0438\u043b\u0440\u043e\u0439 \u2014 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-05T23:42:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-05T23:42:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47I programmi Unix pi\u00f9 straordinari | ProHoster","description":"L'autore dell'articolo Douglas McIlroy \u00e8 un matematico, ingegnere e programmista americano.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0430\u043c\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Unix | ProHoster","og:description":"\u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0443\u0433\u043b\u0430\u0441 \u041c\u0430\u043a\u0438\u043b\u0440\u043e\u0439 \u2014 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-05T23:42:17+00:00","article:modified_time":"2020-04-05T23:42:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76903","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:27:23","updated":"2022-10-08 06:55:30","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/76903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=76903"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/76903\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=76903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=76903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=76903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}