{"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\/pt\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","title":{"rendered":"Os programas Unix mais not\u00e1veis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>O autor do artigo Douglas MacIlroy \u00e9 um matem\u00e1tico, engenheiro e programador americano. Ele \u00e9 mais conhecido pelo desenvolvimento do pipeline no sistema operacional Unix, pelos princ\u00edpios da programa\u00e7\u00e3o orientada a componentes e por v\u00e1rias utilidades originais: spell, diff, sort, join, speak, tr.<\/i> <\/p>\n<p>\u00c0s vezes, voc\u00ea encontra programas realmente extraordin\u00e1rios. Ap\u00f3s uma reflex\u00e3o, fiz uma lista das verdadeiras joias do Unix ao longo dos anos. Em sua maioria, s\u00e3o programas bastante raros e n\u00e3o t\u00e3o essenciais. Mas o que os destaca \u00e9 sua originalidade. N\u00e3o consigo imaginar que eu mesmo teria a ideia de algum deles.<\/p>\n<p>Compartilhe, quais programas tamb\u00e9m o surpreenderam tanto?<\/p>\n<h1>PDP-7 Unix<\/h1>\n<p>\nPara come\u00e7ar, o pr\u00f3prio sistema PDP-7 Unix. Sua simplicidade e pot\u00eancia me fizeram mudar de um poderoso mainframe para uma m\u00e1quina min\u00fascula. Aqui est\u00e1 a quintess\u00eancia do sistema de arquivos hier\u00e1rquico, um shell separado e gerenciamento de processos em n\u00edvel de usu\u00e1rio, algo que o Multics em mainframes n\u00e3o conseguiu realizar mesmo ap\u00f3s centenas de anos de desenvolvimento. As desvantagens do Unix (como a estrutura de registros no sistema de arquivos) foram t\u00e3o instrutivas e libertadoras quanto suas inova\u00e7\u00f5es (como o redirecionamento de entrada e sa\u00edda no shell).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>dc<\/h1>\n<p>\nA biblioteca matem\u00e1tica para calculadoras de mesa com precis\u00e3o vari\u00e1vel de Robert Morris usava an\u00e1lise de erro reverso para determinar a precis\u00e3o necess\u00e1ria em cada etapa para alcan\u00e7ar a precis\u00e3o desejada pelo usu\u00e1rio. Na confer\u00eancia da OTAN sobre engenharia de software de 1968, em sua apresenta\u00e7\u00e3o sobre componentes de software, eu sugeri procedimentos de refer\u00eancia que podem fornecer um resultado de qualquer precis\u00e3o desejada, mas n\u00e3o sabia como implement\u00e1-los na pr\u00e1tica. O dc ainda \u00e9 o \u00fanico programa que conhe\u00e7o capaz disso.<\/p>\n<h1>typo<\/h1>\n<p>\nTypo organiza palavras no texto com base em sua semelhan\u00e7a com o resto do texto. Erros de digita\u00e7\u00e3o como 'hte' tendem a aparecer no final da lista. Robert Morris se orgulhava de que o programa funcionaria igualmente bem para qualquer idioma. Embora o typo n\u00e3o ajude a encontrar erros fon\u00e9ticos, tornou-se uma verdadeira descoberta para todos que digitam texto e trouxe muitos benef\u00edcios antes que uma verifica\u00e7\u00e3o ortogr\u00e1fica mais precisa, mas menos interessante, baseada em dicion\u00e1rio surgisse.<\/p>\n<p>O erro \u00e9 t\u00e3o inesperado por dentro quanto por fora. O algoritmo de medi\u00e7\u00e3o de similaridade \u00e9 baseado na frequ\u00eancia de ocorr\u00eancia de trigramas, que s\u00e3o considerados em um array 26\u00d726\u00d726. Na mem\u00f3ria diminuta, havia mal espa\u00e7o suficiente para contadores de um byte, ent\u00e3o foi implementado um esquema de compress\u00e3o de n\u00fameros grandes em contadores pequenos. Para evitar estouros, os contadores eram atualizados de maneira probabil\u00edstica, mantendo a estimativa do logaritmo do valor do contador.<\/p>\n<h1>. Ele se destaca pelo fato de que, para exibir uma f\u00f3rmula, o desenvolvedor s\u00f3 precisa descrev\u00ea-la com palavras e s\u00edmbolos simples. Palavras-chave permitem deslocar os sinais matem\u00e1ticos vertical e horizontalmente, alterar seus tamanhos e outros par\u00e2metros. Se voc\u00ea passar para a utilidade uma string:<\/h1>\n<p>\nCom o surgimento da fotomontagem, tornou-se poss\u00edvel, mas horrivelmente cansativo, produzir a nota\u00e7\u00e3o matem\u00e1tica cl\u00e1ssica. Lorinda Cherry decidiu desenvolver uma linguagem de descri\u00e7\u00e3o de n\u00edvel mais alto, e logo Brian Kernighan juntou-se a ela. O movimento brilhante deles foi expressar a tradi\u00e7\u00e3o oral de forma escrita, por isso o eqn se tornou surpreendentemente simples de aprender. O primeiro pr\u00e9-processador de linguagem de descri\u00e7\u00e3o de express\u00f5es matem\u00e1ticas, eqn desde ent\u00e3o quase n\u00e3o foi melhorado.<\/p>\n<h1>struct<\/h1>\n<p>\nBrenda Baker iniciou o desenvolvimento de seu conversor Fortan-to-Ratfor contra o conselho de seu chefe \u2014 eu. Pensei que isso poderia levar a uma reorganiza\u00e7\u00e3o especial do texto fonte. Ele estaria livre de n\u00fameros de operadores, mas no restante n\u00e3o seria mais leg\u00edvel do que um c\u00f3digo Fortran bem estruturado. Brenda provou que eu estava errado. Ela descobriu que cada programa Fortran tem uma forma canonicamente estruturada. Os programadores preferiam a forma can\u00f4nica, e n\u00e3o o que haviam escrito originalmente.<\/p>\n<h1>pascal<\/h1>\n<p>\nO diagn\u00f3stico de sintaxe no compilador desenvolvido pelo grupo de Sue Graham em Berkeley foi o mais \u00fatil de todos que j\u00e1 vi \u2014 e era feito automaticamente. Ao encontrar um erro de sintaxe, o compilador sugere inserir um l\u00e9xico para continuar a an\u00e1lise sint\u00e1tica. N\u00e3o h\u00e1 tentativas de explicar o que est\u00e1 errado. Com esse compilador, aprendi Pascal em uma noite, sem ter nenhum manual \u00e0 m\u00e3o.<\/p>\n<h1>parts<\/h1>\n<p>\nM\u00f3dulo oculto dentro do pacote WWB (Writer's Workbench) <code>parts<\/code> Lorinda Cherry define as partes do discurso para palavras em textos em ingl\u00eas baseando-se apenas em um pequeno dicion\u00e1rio, regras de ortografia e gram\u00e1tica. Com essa anota\u00e7\u00e3o, o programa WWB gera indicadores estilom\u00e9tricos do texto, como a preval\u00eancia de adjetivos, ora\u00e7\u00f5es subordinadas e ora\u00e7\u00f5es complexas. Quando Lorinda deu uma entrevista no programa Today da NBC e falou sobre a inovadora verifica\u00e7\u00e3o gramatical nos textos do WWB, foi a primeira men\u00e7\u00e3o ao Unix na televis\u00e3o.<\/p>\n<h1>egrep<\/h1>\n<p>\nAl Aho esperava que seu reconhecedor determin\u00edstico de express\u00f5es regulares superasse o cl\u00e1ssico reconhecedor n\u00e3o determin\u00edstico de Ken. Infelizmente, o \u00faltimo j\u00e1 estava completando a passagem por express\u00f5es regulares complexas enquanto <code>egrep<\/code> constru\u00eda sua m\u00e1quina determin\u00edstica. Para vencer essa corrida, Al Aho contornou a maldi\u00e7\u00e3o do crescimento exponencial da tabela de estados do aut\u00f4mato, inventando uma forma de construir em tempo real apenas os registros da tabela que realmente s\u00e3o acessados durante o reconhecimento.<\/p>\n<h1>crabs<\/h1>\n<p>\nO encantador metaprograma de Luca Cardelli para o sistema de janelas Blit produzia caranguejos virtuais que vagavam pelo espa\u00e7o vazio da tela, mordiscando cada vez mais as bordas das janelas ativas.<\/p>\n<h1>Algumas reflex\u00f5es gerais<\/h1>\n<p>\nEmbora isso n\u00e3o seja aparente externamente, a teoria e os algoritmos desempenharam um papel crucial na cria\u00e7\u00e3o da maioria desses programas: typo, dc, struct, pascal, egrep. Na verdade, o que mais surpreende \u00e9 o uso inusitado da teoria.<\/p>\n<p>Os autores originais de quase metade da lista \u2014 pascal, struct, parts, eqn \u2014 eram mulheres, superando significativamente a participa\u00e7\u00e3o demogr\u00e1fica de mulheres na \u00e1rea de ci\u00eancia da computa\u00e7\u00e3o.<\/p>\n<p><i>Douglas McIlroy<br \/>\nMar\u00e7o de 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.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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47Os programas Unix mais not\u00e1veis | ProHoster","description":"O autor do artigo Douglas McIlroy \u00e9 um matem\u00e1tico, engenheiro e programador americano.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/samye-zamechatelnye-programmy-unix","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/76903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=76903"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/76903\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=76903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=76903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=76903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}