{"id":55281,"date":"2020-01-17T00:00:00","date_gmt":"2020-01-16T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/chto-sdelalo-lisp-osobennym"},"modified":"2020-02-18T14:03:23","modified_gmt":"2020-02-18T11:03:23","slug":"chto-sdelalo-lisp-osobennym","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/chto-sdelalo-lisp-osobennym","title":{"rendered":"Was Lisp besonders machte","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<blockquote><p>&#171;<i>Eine der bedeutendsten Programmiersprachen aller Zeiten<\/i>&#171;<br \/>\n \u2014 Alan Kay, \u201e\u00fcber Lisp\u201c<\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Was Lisp besonders machte\" src=\"\/wp-content\/uploads\/2020\/01\/64f1d8e27f54f8acd763bc17d0bfb57b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAls McCarthy Ende der 1950er Jahre Lisp entwickelte, unterschied er sich radikal von den bestehenden Sprachen, wobei die wichtigste <noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/history.html\">Fortran<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLisp brachte neun neue Ideen hervor:<\/p>\n<p>1. <b>Bedingte Anweisungen (Conditionals)<\/b>. Bedingte Anweisungen sind if-then-else-Konstruktionen. Heute betrachten wir sie als selbstverst\u00e4ndlich. Sie wurden <noindex><a rel=\"nofollow\" href=\"http:\/\/www-formal.stanford.edu\/jmc\/history\/lisp\/node2.html\">von McCarthy erfunden<\/a><\/noindex> w\u00e4hrend der Entwicklung von Lisp. (Fortran hatte zu der Zeit nur goto-Anweisungen, die eng mit der Sprunganweisung auf der darunterliegenden Hardware verkn\u00fcpft waren.) McCarthy, der im Algol-Komitee war, f\u00fchrte die bedingten Anweisungen in Algol ein, von wo sie sich auf andere Sprachen verbreiteten.<\/p>\n<p>2. <b>Funktionstypen (A function type)<\/b>. In Lisp sind Funktionen Objekte erster Klasse \u2013 sie sind Datentypen, genau wie Zahlen, Strings usw., haben eine literale Darstellung, k\u00f6nnen in Variablen gespeichert, als Argumente \u00fcbergeben werden usw. <\/p>\n<p>3. <b>Rekursion (Recursion)<\/b>. Rekursion existierte nat\u00fcrlich schon als mathematisches Konzept vor Lisp, aber Lisp war die erste Programmiersprache, die sie unterst\u00fctzte. (Dies k\u00f6nnte impliziert sein durch die Schaffung von Funktionen als Objekte erster Klasse.)<\/p>\n<p>4. <b>Ein neues Konzept von Variablen<\/b>. In Lisp sind alle Variablen effektive Zeiger. Werte geh\u00f6ren zu den Typen und nicht zu den Variablen, und die Zuweisung oder Bindung von Variablen bedeutet das Kopieren von Zeigern und nicht von dem, auf das sie zeigen.<\/p>\n<p>5. <b>Garbage Collection<\/b>.<\/p>\n<p>6. <b>Programme aus Ausdr\u00fccken zusammengesetzt<\/b>. Programme in Lisp sind Ausdrucksb\u00e4ume, von denen jeder einen Wert zur\u00fcckgibt. (Einige Lisp-Ausdr\u00fccke k\u00f6nnen mehrere Werte zur\u00fcckgeben.) Das steht im Kontrast zu Fortran und viele andere erfolgreiche Sprachen, die zwischen \u201eAusdr\u00fccken\u201c und \u201eAnweisungen\u201c unterscheiden.<\/p>\n<p>Es war nat\u00fcrlich, eine solche Unterscheidung in Fortran zu haben, da die Sprache linear orientiert war (nicht \u00fcberraschend f\u00fcr eine Sprache, deren Eingabeformat eine Lochkarte war). Sie konnten keine verschachtelten Anweisungen haben. Und w\u00e4hrend Sie mathematische Ausdr\u00fccke ben\u00f6tigten, um zu arbeiten, machte es keinen Sinn, dass irgendetwas anderes einen Wert zur\u00fcckgibt, denn es k\u00f6nnte nichts geben, das auf eine R\u00fcckgabe wartete.<\/p>\n<p>Die Einschr\u00e4nkungen wurden mit dem Aufkommen von blockstrukturierten Sprachen aufgehoben, aber zu diesem Zeitpunkt war es bereits zu sp\u00e4t. Die Unterscheidung zwischen Ausdr\u00fccken und Anweisungen hatte sich bereits verfestigt. Sie ging von Fortran zu Algol und von dort weiter zu ihren Nachkommen.<\/p>\n<p>Wenn eine Sprache vollst\u00e4ndig aus Ausdr\u00fccken besteht, k\u00f6nnen Sie Ausdr\u00fccke nach Belieben erstellen. Sie k\u00f6nnen entweder (unter Verwendung der Syntax\u00a0<noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/arc.html\">Arc<\/a><\/noindex>)<\/p>\n<pre><code class=\"lisp\">(if foo (= x 1) (= x 2))<\/code><\/pre>\n<p>\noder<\/p>\n<pre><code class=\"lisp\">(= x (if foo 1 2))<\/code><\/pre>\n<p>\n7. <b>Symboltyp (A symbol type)<\/b>. Zeichen unterscheiden sich von Strings, sodass Sie sie auf Gleichheit \u00fcberpr\u00fcfen k\u00f6nnen, indem Sie die Zeiger vergleichen.<\/p>\n<p>8. <b>Notation f\u00fcr Code (A notation for code)<\/b> unter Verwendung von B\u00e4umen aus Symbolen.<\/p>\n<p>9. <b>Die gesamte Sprache ist immer verf\u00fcgbar (The whole language always available)<\/b>. Es gibt keinen klaren Unterschied zwischen Lesezeit, Kompilierungszeit und Ausf\u00fchrungszeit. Sie k\u00f6nnen Code w\u00e4hrend des Lesens kompilieren oder ausf\u00fchren, oder Code lesen oder ausf\u00fchren, w\u00e4hrend Sie kompilieren, oder Code w\u00e4hrend der Ausf\u00fchrung lesen oder kompilieren.<\/p>\n<p>Der Code wird w\u00e4hrend des Lesens ausgef\u00fchrt, was es Benutzern erm\u00f6glicht, die Syntax von Lisp neu zu programmieren; die Ausf\u00fchrung von Code w\u00e4hrend der Kompilierung bildet die Grundlage f\u00fcr Makros; das Kompilieren zur Laufzeit bildet die Grundlage f\u00fcr die Verwendung von Lisps als Erweiterungssprache in Programmen wie Emacs; und schlie\u00dflich erm\u00f6glicht das Lesen zur Laufzeit Programmen die Interaktion \u00fcber s-Ausdr\u00fccke, eine Idee, die k\u00fcrzlich in XML neu erfunden wurde.<\/p>\n<h4>Fazit<\/h4>\n<p>\nAls Lisp urspr\u00fcnglich erfunden wurde, waren all diese Ideen weit entfernt von den \u00fcblichen Programmierpraktiken, die durch die Hardware diktiert wurden, die Ende der 1950er Jahre verf\u00fcgbar war.<\/p>\n<p>Im Laufe der Zeit hat sich die Standardsprache, verk\u00f6rpert im Erfolg popul\u00e4rer Sprachen, schrittweise in Richtung Lisp entwickelt. Die Punkte 1-5 sind jetzt weit verbreitet. Punkt 6 beginnt im Mainstream aufzutauchen. Punkt 7 ist in gewisser Form in Python vorhanden, obwohl es keinen passenden Syntax gibt. Punkt 8, der (mit Punkt 9) Makros in Lisp m\u00f6glich macht, existiert immer noch nur in Lisp, m\u00f6glicherweise weil (a) es diese Klammern oder etwas ebenso Schlechtes ben\u00f6tigt und (b) wenn Sie diese letzte Erh\u00f6hung der Leistungsf\u00e4higkeit hinzuf\u00fcgen, k\u00f6nnen Sie nicht mehr behaupten, eine neue Sprache erfunden zu haben, sondern lediglich einen neuen Dialekt von Lisp entwickelt haben; -)<\/p>\n<p>Obwohl es f\u00fcr moderne Programmierer n\u00fctzlich ist, ist es seltsam, Lisp in Bezug auf seine Unterschiede zu zuf\u00e4lligen Praktiken, die in anderen Sprachen \u00fcbernommen wurden, zu beschreiben. Vielleicht ist es nicht das, was McCarthy dachte. Lisp wurde nicht entwickelt, um die Fehler von Fortran zu beheben; es entstand eher als Nebenprodukt eines Versuchs. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/rootsoflisp.html\">die Berechnungen zu axiomatisieren<\/a><\/noindex>.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/476994\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>&#171;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&#171; \u2014 Alan Kay, \u00abon Lisp\u00bb \u041a\u043e\u0433\u0434\u0430 \u041c\u0430\u043a\u043a\u0430\u0440\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b Lisp \u0432 \u043a\u043e\u043d\u0446\u0435 1950-\u0445, \u043e\u043d \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u043e\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u0441\u0430\u043c\u044b\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b Fortran. Lisp \u0432\u043e\u043f\u043b\u043e\u0442\u0438\u043b \u0434\u0435\u0432\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0445 \u0438\u0434\u0435\u0439: 1. \u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u044f (Conditionals).\u00a0\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e if-then-else \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0438\u0445 \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e\u0435. \u041e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u044b \u041c\u0430\u043a\u043a\u0430\u0440\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55282,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb\" \/>\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\/de\/blog\/news\/chto-sdelalo-lisp-osobennym\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e Lisp \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/chto-sdelalo-lisp-osobennym\" \/>\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-01-16T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:23+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\udd47Was Lisp besonders gemacht hat | ProHoster","description":"\"Die gr\u00f6\u00dfte je geschaffene Programmiersprache\" \u2014 Alan Kay, \u00abon Lisp\u00bb","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/chto-sdelalo-lisp-osobennym","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e Lisp \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u043c | ProHoster","og:description":"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/chto-sdelalo-lisp-osobennym","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-01-16T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55281","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 19:46:29","updated":"2022-10-01 02:03:35","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=55281"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55281\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/55282"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=55281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=55281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=55281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}