{"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>Die bedeutendste Programmiersprache, die je geschaffen wurde<\/i>&#171;<br \/>\n \u2014 Alan Kay, \u201eon 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 in den sp\u00e4ten 1950er Jahren Lisp entwickelte, unterschied sich die Sprache radikal von bestehenden Sprachen, deren wichtigste war <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 verk\u00f6rperte neun neue Ideen:<\/p>\n<p>1. <b>Bedingte Aussagen (Conditionals)<\/b>. Bedingte Aussagen 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<\/a><\/noindex> McCarthy w\u00e4hrend der Entwicklung von Lisp erfunden. (Fortran hatte zu dieser Zeit nur goto-Anweisungen, die eng mit der gesteuerten Abzweigung auf der zugrunde liegenden Hardware verbunden waren.) McCarthy brachte die bedingten Aussagen ins Algol ein, wo sie sich dann auf andere Sprachen verbreiteten.<\/p>\n<p>2. <b>Funktionstypen (A function type)<\/b>. In Lisp sind Funktionen Objekte erster Klasse \u2013 sie sind ein Datentyp, 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 bereits als mathematisches Konzept vor Lisp, aber Lisp war die erste Programmiersprache, die sie unterst\u00fctzte. (Das wird m\u00f6glicherweise in der Erstellung von Funktionen als Objekte erster Klasse angedeutet.)<\/p>\n<p>4. <b>Ein neues Konzept von Variablen (A new concept of variables)<\/b>. In Lisp sind alle Variablen effektive Zeiger. Werte sind das, was Typen haben, nicht Variablen, und die Zuweisung oder Bindung von Variablen bedeutet das Kopieren von Zeigern, nicht von dem, auf das sie zeigen.<\/p>\n<p>5. <b>Automatische Speicherverwaltung (Garbage-collection)<\/b>.<\/p>\n<p>6. <b>Programme bestehen aus Ausdr\u00fccken (Programs composed of expressions)<\/b>. Programme in Lisp sind Ausdrucksb\u00e4ume, von denen jeder einen Wert zur\u00fcckgibt. (Einige Lisp-Ausdr\u00fccke k\u00f6nnen mehrere Werte zur\u00fcckgeben.) Dies steht im Gegensatz zu Fortran und vielen anderen etablierten Sprachen, die zwischen \"Ausdr\u00fccken\" und \"Anweisungen\" unterscheiden.<\/p>\n<p>Es war nat\u00fcrlich, eine solche Unterscheidung in Fortran zu haben, da die Sprache linear ausgerichtet war (was nicht \u00fcberraschend f\u00fcr eine Sprache ist, deren Eingabeformat eine Lochkarte war). Man konnte keine geschachtelten Anweisungen haben. Und w\u00e4hrend mathematische Ausdr\u00fccke ben\u00f6tigt wurden, gab es keinen Sinn darin, etwas anderes einen Wert zur\u00fcckgeben zu lassen, da es nichts geben konnte, das einen R\u00fcckgabewert erwartete.<\/p>\n<p>Die Einschr\u00e4nkungen wurden mit dem Aufkommen 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 zu deren Nachkommen \u00fcber.<\/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>Symboldatentyp (A symbol type)<\/b>.\u00a0Symbole unterscheiden sich von Zeichenfolgen, in diesem Fall k\u00f6nnen Sie auf Gleichheit pr\u00fcfen, indem Sie die Zeiger vergleichen.<\/p>\n<p>8. <b>Notation f\u00fcr Code (A notation for code)<\/b> unter Verwendung von Baumstrukturen 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 der Lesezeit kompilieren oder ausf\u00fchren, oder Code lesen oder ausf\u00fchren, w\u00e4hrend Sie kompilieren, oder Code w\u00e4hrend der Ausf\u00fchrungszeit lesen oder kompilieren.<\/p>\n<p>Das Ausf\u00fchren von Code w\u00e4hrend des Lesens erm\u00f6glicht es Benutzern, die Syntax von Lisp neu zu programmieren; das Ausf\u00fchren von Code w\u00e4hrend der Kompilierung ist die Grundlage f\u00fcr Makros; das Kompilieren zur Laufzeit ist die Grundlage f\u00fcr die Verwendung von Lisps als Erweiterungssprache in Programmen wie Emacs; und schlie\u00dflich erm\u00f6glicht das Lesen zur Laufzeit den Programmen, \u00fcber s-Ausdr\u00fccke zu interagieren, eine Idee, die k\u00fcrzlich in XML neu erfunden wurde.<\/p>\n<h4>Fazit<\/h4>\n<p>\nAls Lisp erfunden wurde, waren all diese Ideen weit entfernt von den \u00fcblichen Programmierpraktiken, die durch die Hardware, die Ende der 1950er Jahre verf\u00fcgbar war, diktiert wurden.<\/p>\n<p>Im Laufe der Zeit hat sich die Standardsprache, verk\u00f6rpert im Erfolg popul\u00e4rer Sprachen, allm\u00e4hlich in Richtung Lisp weiterentwickelt. Die Punkte 1-5 sind jetzt weit verbreitet. Punkt 6 beginnt, im Mainstream sichtbar zu werden. In Python gibt es in gewisser Form Punkt 7, obwohl es nicht die passende Syntax daf\u00fcr gibt. Punkt 8, der (neben Punkt 9) Makros in Lisp erm\u00f6glicht, existiert immer noch nur in Lisp, m\u00f6glicherweise weil (a) er diese Klammern oder etwas \u00c4hnliches erfordert und (b) wenn Sie diese letzte Leistungssteigerung hinzuf\u00fcgen, k\u00f6nnen Sie nicht mehr behaupten, Sie h\u00e4tten eine neue Sprache erfunden, sondern lediglich einen neuen Dialekt von Lisp entwickelt; -)<\/p>\n<p>Obwohl dies f\u00fcr moderne Programmierer n\u00fctzlich ist, ist es seltsam, Lisp im Hinblick auf seine Unterschiede zu zuf\u00e4lligen Konzepten zu beschreiben, die in anderen Sprachen angenommen werden. Vielleicht ist das nicht das, was McCarthy im Sinn hatte. 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.1.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.1.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 aller jemals geschaffenen Programmiersprachen\" \u2014 Alan Kay, \u201eon Lisp\u201c","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}]}}