{"id":53040,"date":"2019-11-22T00:00:00","date_gmt":"2019-11-21T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/yazykovye-sloi"},"modified":"2020-02-18T14:00:54","modified_gmt":"2020-02-18T11:00:54","slug":"yazykovye-sloi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/no\/blog\/news\/yazykovye-sloi","title":{"rendered":"Spr\u00e5klag","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hei, Habr!<\/p>\n<p>Jeg vil gjerne presentere oversettelsen av artikkelen \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/clck.ru\/JwFe2\">Language Layers<\/a><\/noindex>\u00bb av Robert C. Martin (Uncle Bob).<\/p>\n<p><img decoding=\"async\" alt=\"Spr\u00e5klag\" src=\"\/wp-content\/uploads\/2019\/11\/7443f8be2481982b85afe6f8368a9e81.jpeg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nJeg bruker tid p\u00e5 \u00e5 spille det gamle spillet \u00abLunar Lander\u00bb fra 1969. Det ble skrevet av Jim Storer, en videreg\u00e5ende elev. Han skrev det p\u00e5 PDP-8 i FOCAL. Her er hvordan programmet ser ut: <\/p>\n<p><img decoding=\"async\" alt=\"Spr\u00e5klag\" src=\"\/wp-content\/uploads\/2019\/11\/44821c373bf1285cf7085306e194cc14.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHer er kildekoden i FOCAL:<\/p>\n<p><img decoding=\"async\" alt=\"Spr\u00e5klag\" src=\"\/wp-content\/uploads\/2019\/11\/bcde722861952deb2e7e8e3f7064c992.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJim Storer var en ganske talentfull videreg\u00e5ende elev. Ta en titt p\u00e5 denne koden. Den har ganske interessante Taylor-uttrykk. <\/p>\n<p>Generelt bruker jeg bin\u00e6r s\u00f8king for \u00e5 bestemme verdien K, som perfekt vil lande romskipet med gjentatt bruk. S\u00e5 jeg har endret programmet slik at det bare tar ett verdi, og deretter brukes det flere ganger til skipet lander eller krasjer. Mens jeg skriver dette, vet jeg at svaret ligger mellom 76.40625 og 76.4453125, og jeg vil pr\u00f8ve 76.4257813. Jeg begynner \u00e5 tenke at jeg g\u00e5r tom for tid f\u00f8r jeg finner svaret. <\/p>\n<p>I mellomtiden kom jeg p\u00e5 at jeg kj\u00f8rte dette programmet p\u00e5 en emulator <noindex><a rel=\"nofollow\" href=\"https:\/\/clck.ru\/JwGvr\">PDP-8<\/a><\/noindex>, som jeg skrev i Lua for iPad.<\/p>\n<p>S\u00e5, la oss tenke litt p\u00e5 dette.<\/p>\n<ul>\n<li>iPad har en chip <noindex><a rel=\"nofollow\" href=\"https:\/\/clck.ru\/JwGxH\">A8X<\/a><\/noindex>, med tre kjerner som kj\u00f8rer p\u00e5 en gigahertz eller s\u00e5.<\/li>\n<li>Lua er skrevet i C og kompileres til A8X.<\/li>\n<li>Min PDP8-emulator er skrevet i Lua, ved hjelp av pakken <noindex><a rel=\"nofollow\" href=\"https:\/\/clck.ru\/JwGy4\">CODEA<\/a><\/noindex> fra Two Lives Left.<\/li>\n<li>FOCAL ble skrevet p\u00e5 slutten av 1960-tallet p\u00e5 PDP8.<\/li>\n<li>Lunar Lander ble skrevet i FOCAL.<\/li>\n<\/ul>\n<p>\nS\u00e5 det er A8X, C, Lua, PDP8 og FOCAL. Fem ulike spr\u00e5k. Fem forskjellige mekanismer som forteller maskinen hva den skal gj\u00f8re; alle pakket opp\u00e5 hverandre! <\/p>\n<p>Hva er greia? Hvorfor s\u00e5 mange spr\u00e5k? Egentlig, glem iPad, PDP-8, C, Lua og alt annet. Hvorfor s\u00e5 mange spr\u00e5k? <\/p>\n<p>##\u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u043e\u0432? <\/p>\n<p>Tenk p\u00e5 det! Hvor mange programmeringsspr\u00e5k kan du navngi? La meg gi deg en liten liste:<\/p>\n<ul>\n<li> FORTRAN<\/li>\n<li> ALGOL<\/li>\n<li> COBOL<\/li>\n<li> SNOBOL<\/li>\n<li> LISP<\/li>\n<li> BCPL<\/li>\n<li> B<\/li>\n<li> C<\/li>\n<li> SIMULA<\/li>\n<li> SMALLTALK<\/li>\n<li> EIFFEL<\/li>\n<li> C++<\/li>\n<li> JAVA<\/li>\n<li> C#<\/li>\n<li> PYTHON<\/li>\n<li> RUBY<\/li>\n<li> LOGO<\/li>\n<li> LUA<\/li>\n<li> BASIC<\/li>\n<li> PL\/1<\/li>\n<li> JAVASCRIPT<\/li>\n<li> GO<\/li>\n<li> DART<\/li>\n<li> PROLOG<\/li>\n<li> FORTH<\/li>\n<li> SWIFT<\/li>\n<li> ML<\/li>\n<li> OCCAM<\/li>\n<li> OCAML<\/li>\n<li> ADA<\/li>\n<li> ERLANG<\/li>\n<li> ELIXIR<\/li>\n<li> FOCAL<\/li>\n<\/ul>\n<p>\nDu kan sikkert tenke p\u00e5 andre som jeg ikke nevnte. Sp\u00f8rsm\u00e5let er, hvorfor er det s\u00e5 mange? Det kan faktisk bare v\u00e6re ett svar p\u00e5 dette sp\u00f8rsm\u00e5let. Grunnen til at det finnes s\u00e5 mange dataprogrammeringsspr\u00e5k: <\/p>\n<blockquote><p> <em>Vi liker dem ikke.<\/em>\n<\/p><\/blockquote>\n<p>\nVel, kanskje det er en for sterk p\u00e5stand. Kanskje jeg burde si: <\/p>\n<blockquote><p> <em>Vi var i Hollywood.<br \/>\n Vi var i Redwood.<br \/>\n Vi krysset havet for den gyldne koden.<br \/>\n Vi var i v\u00e5rt sinn,<br \/>\n Det er en s\u00e5 tynn linje.<br \/>\n Dette f\u00e5r oss til \u00e5 lete etter den gyldne koden.<\/p>\n<p> Og vi blir eldre.<\/em>\n<\/p><\/blockquote>\n<p> Vel, kanskje jeg burde snakke for meg selv... Ville du ikke bare rope til Neil Young om \u00e5 slutte \u00e5 klage, finne seg en s\u00f8t jente og bo med henne? Ville du ikke sagt til ham at jakten p\u00e5 det gyldne hjertet var bortkastet? Si meg, hva ville han gjort med det, hvis han fant det? <\/p>\n<p>Og hva ville vi gjort med det perfekte spr\u00e5ket hvis vi fant det?<\/p>\n<blockquote><p><em>Vi har laget emulatorer for PDP-8 og FOCAL, for \u00e5 spille &#187; Lunar Lander&#187;, skrevet av en videreg\u00e5ende elev i 1969!<\/em>\n<\/p><\/blockquote>\n<p> <b>Dette er hva jeg tenker.<\/b><\/p>\n<p>Godta det. Slutt \u00e5 lete. Det finnes ikke noe perfekt spr\u00e5k. Vi har lett overalt. Vi har sett opp og ned. Vi har sett innover og utover.<\/p>\n<blockquote><p> <em>Vi har sett p\u00e5 spr\u00e5k fra begge sider.<br \/>\n Innenfra og utenfra<br \/>\n og likevel p\u00e5 en eller annen m\u00e5te.<br \/>\n Husk at dette er spr\u00e5klige illusjoner.<\/p>\n<p>Vi forst\u00e5r faktisk ingenting om spr\u00e5k...<br \/>\n... i det hele tatt.<\/em>\n<\/p><\/blockquote>\n<p> Ja, i dag er en spesiell dag.<\/p>\n<p>Men uavhengig av det, poenget er:<\/p>\n<blockquote><p> <em>Vi trenger ikke et annet spr\u00e5k.<br \/>\n Vi trenger ikke \u00e5 vite veien hjem.<br \/>\n Alt vi \u00f8nsker er \u00e5 komme ut av livet.<br \/>\n S.Q.L.<\/em>\n<\/p><\/blockquote>\n<p> Ja, en rar dag.<\/p>\n<p>S\u00e5, det er en tanke. Kanskje vi b\u00f8r slutte \u00e5 lage nye spr\u00e5k og bare roe oss ned og velge ett eller to som faktisk er gode. Det ville gjort livet mye enklere, ikke sant?<\/p>\n<p>Og hvis du er interessert, gir 76.43844461 deg en ganske god landing p\u00e5 2.23 MPH.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/476644\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u00abLanguage Layers\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Robert C. Martin (Uncle Bob). \u042f \u043f\u0440\u043e\u0432\u043e\u0436\u0443 \u0432\u0440\u0435\u043c\u044f, \u0438\u0433\u0440\u0430\u044f \u0432 \u0441\u0442\u0430\u0440\u0443\u044e \u0438\u0433\u0440\u0443 \u00abLunar Lander\u00bb 1969 \u0433\u043e\u0434\u0430. \u041e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0414\u0436\u0438\u043c\u043e\u043c \u0421\u0442\u043e\u0440\u0435\u0440\u043e\u043c, \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0448\u043a\u043e\u043b\u044b. \u041e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0435\u0435 \u043d\u0430 PDP-8 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 FOCAL. \u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430: \u0410 \u0432\u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 FOCAL: \u0414\u0436\u0438\u043c \u0421\u0442\u043e\u0440\u0435\u0440 \u0431\u044b\u043b [&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":[702],"tags":[],"class_list":["post-53040","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u00abLanguage Layers\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Robert C.\" \/>\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\/no\/blog\/news\/yazykovye-sloi\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\u042f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u0441\u043b\u043e\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u00abLanguage Layers\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Robert C.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/no\/blog\/news\/yazykovye-sloi\" \/>\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=\"2019-11-21T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:54+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\udd47Spr\u00e5klige lag | ProHoster","description":"Hei, Habr! Jeg vil gjerne dele oversettelsen av artikkelen \u00abLanguage Layers\u00bb av Robert C.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/news\/yazykovye-sloi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\u042f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u0441\u043b\u043e\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u00abLanguage Layers\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Robert C.","og:url":"https:\/\/prohoster.info\/no\/blog\/news\/yazykovye-sloi","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":"2019-11-21T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53040","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":"2026-01-24 05:50:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:32:31","updated":"2026-01-24 05:50:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/53040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=53040"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/53040\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=53040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=53040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=53040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}