'

Common Lisp

Понравилась презентация – покажи это...





Слайд 0

Lisp MacLisp InterLisp ZetaLisp Scheme NewLisp Common Lisp Clojure Arc NuLisp Emacs Lisp Dylan


Слайд 1

Характеристики Common Lisp среди Lisp'ов Lisp N Лексический и динамический диапазон s-выражения Динамическая типизация с опциональным объявлением типов Мультипарадигменность


Слайд 2

Стандарт 25 особых операторов: block catch declare eval flet function go if labels let let* load-time-value locally macrolet multiple-value-call multiple-value-prog1 progn progv quote return-from setq symbol-macrolet tagbody the throw unwind-protect Всё остальное – пакет COMMON-LISP – фактически стандартная библиотека, которая через механизм импорта может быть переопределена поэлементно или вообще не подключена


Слайд 3

Проблемы стандарта Нет разделения на подпакеты Работа с файлами оторвана от реального мира В стандарте нет multithreading Нет sockets Нет streams Нет environment Нет RE CLOS не интегрирован до основания (нельзя наследовать от core data types), а MOP не стандартизирован вообще


Слайд 4

Реализации На cl-user.net перечисленно 26 реализаций из них минимум 8 значительных: SBCL, CMUCL Allegro CL LispWorks CLISP Clozure CL ABCL Corman CL ECL


Слайд 5

IDE Emacs SLIME ABLE (http://phil.nullable.eu/)? Cusp Plugin for Eclipse LispBox Luke Gorrie Erlang: ICFPC '01 winner with Joe Armstrong SLIME clbuild Smalltalk & Forth for OLPC


Слайд 6

Де-факто стандартные библиотеки "APL is like a diamond. It has a beautiful crystal structure; all of its parts are related in a uniform and elegant way. But if you try to extend this structure in any way — even by adding another diamond — you get an ugly kludge. LISP, on the other hand, is like a ball of mud. You can add any amount of mud to it and it still looks like a ball of mud." --Joel Moses Решают проблему несовершенства стандарта Как и любой медали – 2 стороны. Пример: ITERATE


Слайд 7

Описание систем и дистрибутивов ASDF и ASDF-INSTALL недостатки: over-engineered & underdocumented XCVB clbuild MUDBALLS


Слайд 8

RE CL-PPCRE (быстрее, чем Perl)? Edi Weitz Ediware (http://weitz.de)? Hunchentoot & Drakma Cl-WHO & HTML-TEMPLATE European Lisp Meetup


Слайд 9

Files & OS CL-FAD & CL-POSIX GUI LispWorks CAPI LTK Cells CL-QT4 ... McCLIM


Слайд 10

FFI CFFI vs UFFI CL+J (cffi:defcallback passwd-cb-name :int ((buf :pointer) (size :int) (rwflag :int) (unused :pointer))? (let ((tmp (cffi:foreign-string-alloc password-str)))? (cffi:foreign-funcall "strncpy" :pointer buf :pointer tmp :int size)? (cffi:foreign-string-free tmp)? (setf (cffi:mem-ref buf :char (1- size)) 0)? (cffi:foreign-funcall "strlen" :pointer buf :int)))? (ssl-ctx-set-default-passwd-cb *ssl-global-context* (cffi:callback passwd-cb-name))))))?


Слайд 11

MOP CLOSER-MOP ContextL AspectL Pascal Costanza Highly Opinionated Guide to Lisp Reflection for the Masses CDR European Lisp Symposium


Слайд 12

Sockets USOCKET Streams Gray Streams (TRIVIAL-GRAY-STREAMS)? Threading BORDEAUX-THREADS


Слайд 13

Concurrency Implememntation specific (sb-ext:compare-and-swap)? PCALL CL-MUPROC CL-STM FSet


Слайд 14

Functional Pattern Matching: CL-UNIFICATION CLAZY CL-CONT


Слайд 15

Парсинг данных ClosureXML (CXML), S-XML, CL-LIBXML2 CL-JSON DSV SQL, Persistance CLSQL, Postmodern Elephant, AllegroCache


Слайд 16

Community cliki.net common-lisp.net paste.lisp.org cl-user.net #lisp @ freenode lisp.catap.ru Bill Clementson http://bc.tech.coop


Слайд 17

comp.lang.lisp Rainer Joswig, Kenny Tilton, Pascal Bourguignon, Kaz Kylheku Erik Naggum Kent M. Pitman HyperSpec Condition Handling in the Lisp Language Family EQUAL Rights – and Wrongs – in Lisp


Слайд 18

Книги Practical Common Lisp (http://pcl.catap.ru/doku.php)? Let over Lambda On Lisp A Gentle Introduction to Symbolic Computation Successful Lisp ANSI Common Lisp Konrad Barksi's (http://www.lisperati.com/)? Art of Meta-Object Protocol Sketchy Lisp Lisp in Small Pieces Peter Siebel


Слайд 19

Output Guy Steele Jr. Scheme CLtL Java Fortress Growing a Language Dick Gabriel Lucid Patterns of Software Worse is Better David Moon MacLisp Symbolics Plot Dan Weinreib Symbolics ObjectStore ITA Software http://weinreib.com


Слайд 20

Еще Paul Graham ViaWeb YCombinator Arc Nature of Lisp Beating the Averages Peter Norvig PAIP, AIMA NASA Google Design Patterns in Dynamic Programming Mark Tarver Qi Lisp for the 21st Century A Bipolar Lisp Programmer Rich Hickey Clojure Values and Change


Слайд 21

Будущее Lisp reneissance (<= programming languages proliferation)? industry? нет (в смысле вебсайты на сток хостинге, бухгалтерские программы, десктопные или мобильные приложения)? да (NASA, Aerospace, сложные вычисления, Интернет-стартапы, экспертные системы и т.д.)? CLtL3


×

HTML:





Ссылка: