{"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\/da\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","title":{"rendered":"De mest bem\u00e6rkelsesv\u00e6rdige Unix-programmer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Artikelforfatter Douglas MacIlroy er en amerikansk matematiker, ingeni\u00f8r og programm\u00f8r. Han er mest kendt for udviklingen af \u200b\u200bpipeline i Unix-operativsystemet, principperne for komponentbaseret programmering og flere originale v\u00e6rkt\u00f8jer: spell, diff, sort, join, speak, tr.<\/i> <\/p>\n<p>Nogle gange st\u00f8der man p\u00e5 virkelig fantastiske programmer. Efter at have gravet lidt i hukommelsen har jeg lavet en liste over \u00e6gte perler fra Unix gennem \u00e5rene. Det er for det meste ret sj\u00e6ldne og ikke s\u00e5 n\u00f8dvendige programmer. Men det, der adskiller dem, er deres originalitet. Jeg kan ikke engang forestille mig, at jeg selv kom p\u00e5 id\u00e9en til nogen af \u200b\u200bdem.<\/p>\n<p>Del gerne, hvilke programmer ogs\u00e5 har imponeret dig s\u00e5 meget?<\/p>\n<h1>PDP-7 Unix<\/h1>\n<p>\nFor det f\u00f8rste er selve systemet PDP-7 Unix. Dets enkelhed og styrke fik mig til at skifte fra en kraftfuld mainframe til en lille maskine. Her finder vi essensen af \u200b\u200bet hierarkisk filsystem, separate shell og processtyring p\u00e5 brugerniveau, noget som Multics p\u00e5 mainframes ikke kunne realisere efter hundredevis af mand-\u00e5rs udvikling. Mangelene ved Unix (som fx strukturen af \u200b\u200bpostninger i filsystemet) var lige s\u00e5 l\u00e6rerige og befriende som dens innovationer (som fx input-output-omdirigering i shell).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>dc<\/h1>\n<p>\nDen matematiske bibliotek til skrivebordskalkulatoren med variabel pr\u00e6cision af Robert Morris brugte invers fejlanalyse til at bestemme den n\u00f8dvendige pr\u00e6cision ved hvert skridt for at opn\u00e5 den \u00f8nskede pr\u00e6cision af resultatet. P\u00e5 NATO-konferencen om software engineering i 1968 pr\u00e6senterede jeg i mit opl\u00e6g om softwarekomponenter standardprocedurer, der kan give et resultater med enhver \u00f8nsket pr\u00e6cision, men jeg vidste ikke, hvordan man skulle implementere dem i praksis. dc er stadig det eneste program, jeg kender til, som kan g\u00f8re dette.<\/p>\n<h1>typo<\/h1>\n<p>\nTypo organiserer ord i teksten baseret p\u00e5 deres lighed med resten af teksten. Fejl som &#8216;hte&#8217; har tendens til at ende p\u00e5 bunden af listen. Robert Morris sagde stolt, at programmet ville fungere lige godt p\u00e5 ethvert sprog. Selvom typo ikke hj\u00e6lper med at finde fonetiske fejl, har det v\u00e6ret en \u00e6gte opdagelse for alle, der skriver tekst, og har v\u00e6ret en stor hj\u00e6lp, inden en langt mindre interessant, men mere pr\u00e6cis stavekontrol kom p\u00e5 banen.<\/p>\n<p>Typo er lige s\u00e5 uventet konstrueret indeni som udenp\u00e5. Algoritmen til at m\u00e5le lighed er baseret p\u00e5 frekvensen af trigrammer, som t\u00e6lles i et array p\u00e5 26\u00d726\u00d726. I den lille hukommelse var der n\u00e6ppe plads til enbytes t\u00e6llere, s\u00e5 der blev implementeret en komprimeringsordning for store tal i sm\u00e5 t\u00e6llere. For at undg\u00e5 overfyldning blev t\u00e6llerne opdateret p\u00e5 en probabilistisk basis, hvilket opretholdt en vurdering af logaritmen til t\u00e6llerens v\u00e6rdi.<\/p>\n<h1>eqn<\/h1>\n<p>\nMed fremkomsten af fotonsamling blev det muligt, men s\u00e6rdeles tr\u00e6ttende, at udtrykke klassisk matematisk notation. Lorinda Cherry besluttede at udvikle et h\u00f8jere niveau beskriftsprog, og snart sluttede Brian Kernighan sig til hende. Deres geniale tr\u00e6k bestod i at udtrykke den mundtlige tradition skriftligt, derfor viste eqn sig at v\u00e6re overraskende nemt at l\u00e6re. Den f\u00f8rste af sin slags pr\u00e6processor for et beskriftsprog for matematiske udtryk, eqn har stort set ikke v\u00e6ret forbedret siden.<\/p>\n<h1>struct<\/h1>\n<p>\nBrenda Baker satte sig for at udvikle sin Fortan-til-Ratfor konverter p\u00e5 trods af r\u00e5d fra hendes chef \u2013 mig. Jeg t\u00e6nkte, at det kunne f\u00f8re til en s\u00e6rskilt omorganisering af den originale tekst. Den ville v\u00e6re fri for operat\u00f8rnumre, men ellers ikke mere l\u00e6sbar end en velstruktureret Fortran-kode. Brenda bevist, at jeg tog fejl. Hun opdagede, at hver Fortran-program har en kanonisk struktureret form. Programm\u00f8rer foretrak den kanoniske form fremfor det, de oprindeligt havde skrevet.<\/p>\n<h1>pascal<\/h1>\n<p>\nDiagnosen af syntaksen i kompileren, skabt af Sue Grahams gruppe i Berkeley, var den mest nyttige, jeg nogensinde har set \u2013 og den blev udf\u00f8rt automatisk. Ved syntaksfejl foresl\u00e5r kompileren at inds\u00e6tte et leksikon for at forts\u00e6tte syntaksanalyse. Ingen fors\u00f8g p\u00e5 at forklare, hvad der var galt. Med denne compiler l\u00e6rte jeg Pascal p\u00e5 en aften uden at have nogen form for vejledning ved h\u00e5nden.<\/p>\n<h1>parts<\/h1>\n<p>\nModulet gemt inde i WWB-pakken (Writer&#8217;s Workbench) <code>parts<\/code> Lorinda Cherry definerer ordklasser for ord i engelske tekster baseret kun p\u00e5 et lille ordforr\u00e5d, stave- og grammatikregler. Dette resulterer i, at WWB-programmet genererer stilometriske indikatorer for teksten, s\u00e5som overv\u00e6gt af adjektiver, bis\u00e6tninger og komplekse s\u00e6tninger. Det var f\u00f8rste gang, Unix blev n\u00e6vnt p\u00e5 tv, da Lorinda gav et interview i tv-programmet Today p\u00e5 NBC og talte om den innovative grammatikkontrol i WWB-tekster.<\/p>\n<h1>egrep<\/h1>\n<p>\nAl Aho forventede, at hans determinerede regul\u00e6re udtryksparser ville overhale den klassiske nondeterminerede parser fra Ken. Desv\u00e6rre var den sidstn\u00e6vnte allerede ved at afslutte sin gennemgang af komplekse regul\u00e6re udtryk, mens <code>egrep<\/code> han byggede sin determinerede automat. For at vinde dette l\u00f8b undgik Al Aho forbandelsen ved eksponentiel v\u00e6kst i automattens tilstandstabel ved at opfinde en metode til dynamisk at konstruere kun de tabelposter, der faktisk bes\u00f8ges under genkendelsen.<\/p>\n<h1>krabber<\/h1>\n<p>\nLuca Cardellis charmerende metaprogram til vinduessystemet Blit udgav virtuelle krabber, der vandrede rundt i den tomme plads p\u00e5 sk\u00e6rmen og konstant bedte kanterne af aktive vinduer.<\/p>\n<h1>Nogle generelle tanker<\/h1>\n<p>\nSelvom det ikke er synligt udefra, har teorien og algoritmerne spillet en afg\u00f8rende rolle i udviklingen af de fleste af disse programmer: typo, dc, struct, pascal, egrep. Det mest overraskende er faktisk den us\u00e6dvanlige anvendelse af teorien.<\/p>\n<p>De originale forfattere af n\u00e6sten halvdelen af listerne \u2014 pascal, struct, parts, eqn \u2014 var kvinder, hvilket overstiger den demografiske andel af kvinder inden for datalogi betydeligt.<\/p>\n<p><i>Douglas McIlroy<br \/>\nMarts, 2020<\/i><br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47De mest bem\u00e6rkelsesv\u00e6rdige Unix-programmer | ProHoster","description":"Artikelforfatteren Douglas McIlroy er en amerikansk matematiker, ingeni\u00f8r og programm\u00f8r.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/76903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=76903"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/76903\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=76903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=76903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=76903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}