50 лет лиспа (программистское)
Jan. 4th, 2008 09:49 pmВ этом году исполняется 50 лет языку Лисп.
В честь этого события я распечатал и прочитал LISP 1.5 Programmer's Manual, полную спецификацию первой версии Лиспа, которая широко распостранилась за пределами MIT. Это 62-й год. Очень интересная книга. Забавно наблюдать смешение универсального и конкретных подробностей имплементации на архитектуре IBM 7090, одного из больших компьютеров того времени (32k слов по 36 бит каждое - около 140kb памяти в сегодняшних байтах).
Одна из самых странных особенностей этой книги с точки зрения современного Лиспа состоит в том, что к тому времени Маккарти еще не отказался от отдельного синтаксиса для M-expressions - мета-языка программ, отдельного от S-expressions, из которых состоит собственно Лисп. Все алгоритмы в книге написаны на M-expressions, и отдельно указано, как переводить их в программы для системы LISP. Это обстоятельство не мешает LISP 1.5 "схлопывать" уровни данных, программ, и интерпретатора программ, как это свойственно Лиспу в целом, просто это схлопывание не столь очевидно выражено в книге, из-за использования отдельного метаязыка для описания большинства функций.
Один из лучших советов, которые я могу дать программистам, стремящимся расширить свой кругозор: выучите Лисп. Это далеко не так страшно, не так сложно, и не так архаично, как кажется издалека; вы многому научитесь и на многое сможете смотреть по-другому, даже и продолжая работать с любым другим языком.
Я изучил Лисп год назад, после того, как много лет - больше десяти - это откладывал по тем или иным зряшным причинам. Современный учебник, который обычно хвалят знатоки Лиспа - Practical Common Lisp - заслуживает все эти похвалы, и доступен как в виде книги, так и в сетевой версии. Сделайте себе одолжение, и если вы хотите научиться чему-то новому в 2008 году, и еще не знаете Лисп, попробуйте ее прочитать.
В честь этого события я распечатал и прочитал LISP 1.5 Programmer's Manual, полную спецификацию первой версии Лиспа, которая широко распостранилась за пределами MIT. Это 62-й год. Очень интересная книга. Забавно наблюдать смешение универсального и конкретных подробностей имплементации на архитектуре IBM 7090, одного из больших компьютеров того времени (32k слов по 36 бит каждое - около 140kb памяти в сегодняшних байтах).
Одна из самых странных особенностей этой книги с точки зрения современного Лиспа состоит в том, что к тому времени Маккарти еще не отказался от отдельного синтаксиса для M-expressions - мета-языка программ, отдельного от S-expressions, из которых состоит собственно Лисп. Все алгоритмы в книге написаны на M-expressions, и отдельно указано, как переводить их в программы для системы LISP. Это обстоятельство не мешает LISP 1.5 "схлопывать" уровни данных, программ, и интерпретатора программ, как это свойственно Лиспу в целом, просто это схлопывание не столь очевидно выражено в книге, из-за использования отдельного метаязыка для описания большинства функций.
Один из лучших советов, которые я могу дать программистам, стремящимся расширить свой кругозор: выучите Лисп. Это далеко не так страшно, не так сложно, и не так архаично, как кажется издалека; вы многому научитесь и на многое сможете смотреть по-другому, даже и продолжая работать с любым другим языком.
Я изучил Лисп год назад, после того, как много лет - больше десяти - это откладывал по тем или иным зряшным причинам. Современный учебник, который обычно хвалят знатоки Лиспа - Practical Common Lisp - заслуживает все эти похвалы, и доступен как в виде книги, так и в сетевой версии. Сделайте себе одолжение, и если вы хотите научиться чему-то новому в 2008 году, и еще не знаете Лисп, попробуйте ее прочитать.
no subject
Date: 2008-01-04 09:02 pm (UTC)П.ЭС. Именные часы не желаешь?
http://amigofriend.livejournal.com/560743.html
;)
no subject
Date: 2008-01-04 09:52 pm (UTC)no subject
Date: 2008-01-04 09:08 pm (UTC)no subject
Date: 2008-01-04 09:44 pm (UTC)В Лиспе начинаешь ценить его многонастроенность, и богатый набор примитивов, и, я думаю, новичку он более убедительным будет в качестве практически полезного языка, чем схема.
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-04 09:30 pm (UTC)no subject
Date: 2008-01-04 09:31 pm (UTC)no subject
Date: 2008-01-04 09:36 pm (UTC)у меня был опыт коммерческого программирования на схеме, конкретно на mzscheme - так что могу ее порекомендовать. А common lisp у меня для всяких моих поделок :-)
no subject
Date: 2008-01-04 09:38 pm (UTC)no subject
Date: 2008-01-04 09:46 pm (UTC)(я не писал код на схеме, впрочем)
no subject
Date: 2008-01-04 10:29 pm (UTC)кстати, забыл
Date: 2008-01-04 09:38 pm (UTC)Проект пока в стадии перевода, хотя много что переведено, но требуется вычитка. Я надеюсь, что ссылка будет полезна для многих
no subject
Date: 2008-01-04 09:55 pm (UTC)no subject
Date: 2008-01-04 09:56 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-04 09:56 pm (UTC)no subject
Date: 2008-01-04 10:18 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-04 10:00 pm (UTC)no subject
Date: 2008-01-04 10:04 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-04 10:00 pm (UTC)no subject
Date: 2008-01-04 10:42 pm (UTC)no subject
Date: 2008-01-05 12:07 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-05 12:05 am (UTC)no subject
Date: 2008-01-05 12:31 am (UTC)no subject
Date: 2008-01-05 12:28 am (UTC)Я лиспа не знаю хорошо, но у меня впечатление обратное: есть польза от знакомства с haskell или прологом или прочими нетрадиционными языками. Потому что потом знание про них можно протащить в программирование на других языках.
А в lisp идей, которых хотелось бы унести с собой, я что-то не нашёл, а вот сам язык постоянно хочется использовать.
no subject
Date: 2008-01-05 03:23 am (UTC)Возьмем систему Mathematica. Сама по себе она написана на C, насколько я знаю. Но сам язык подозрительно похож на Лисп, вот например, внутреннее представление выражения a*x^2+b*x+c:
In[1]:=FullForm[a x^2 + b x + c]
Out[1]=Plus[c, Times[b, x],Times[a,Power[x, 2]]].
Основные операторы Mathematicа, вроде Map, Apply, Head etc имеют, вроде, прямые аналоги в Лиспе.
Спрашивается, насколько Mathematica близка к Лиспу с точки зрения классификации языков?
no subject
Date: 2008-01-05 04:55 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2008-01-05 04:21 am (UTC)no subject
Date: 2008-01-05 04:55 am (UTC)no subject
Date: 2008-01-05 05:27 am (UTC)no subject
Date: 2008-01-05 08:44 am (UTC)no subject
Date: 2008-01-05 11:53 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2008-01-07 10:47 am (UTC)