Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемvseloved
1 Lisp MacLispInterLisp ZetaLisp Scheme NewLisp Common Lisp Clojure Arc NuLisp Emacs Lisp Dylan
2 Характеристики Common Lisp среди Lisp'ов Lisp N Лексический и динамический диапазон s-выражения Динамическая типизация с опциональным объявлением типов Мультипарадигменность
3 Стандарт 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 – фактически стандартная библиотека, которая через механизм импорта может быть переопределена поэлементно или вообще не подключена
4 Проблемы стандарта Нет разделения на подпакеты Работа с файлами оторвана от реального мира В стандарте нет multithreading Нет sockets Нет streams Нет environment Нет RE CLOS не интегрирован до основания (нельзя наследовать от core data types), а MOP не стандартизирован вообще
5 Реализации На cl-user.net перечисленно 26 реализаций из них минимум 8 значительных: SBCL, CMUCL Allegro CL LispWorks CLISP Clozure CL ABCL Corman CL ECL
6 IDE Emacs SLIME ABLE ( Cusp Plugin for Eclipse LispBox Luke Gorrie Erlang: ICFPC '01 winner with Joe Armstrong SLIME clbuild Smalltalk & Forth for OLPC
7 Де-факто стандартные библиотеки "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
8 Описание систем и дистрибутивов ASDF и ASDF-INSTALL недостатки: over-engineered & underdocumented XCVB clbuild MUDBALLS
9 RE CL-PPCRE (быстрее, чем Perl) Edi Weitz Ediware ( Hunchentoot & Drakma Cl-WHO & HTML-TEMPLATE European Lisp Meetup
10 Files & OS CL-FAD & CL-POSIX GUI LispWorks CAPI LTK Cells CL-QT4... McCLIM
11 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))))))
12 MOP CLOSER-MOP ContextL AspectL Pascal Costanza Highly Opinionated Guide to Lisp Reflection for the Masses CDR European Lisp Symposium
13 Sockets USOCKET Streams Gray Streams (TRIVIAL-GRAY-STREAMS) Threading BORDEAUX-THREADS
14 Concurrency Implememntation specific (sb-ext:compare-and-swap) PCALL CL-MUPROC CL-STM FSet
15 Functional Pattern Matching: CL-UNIFICATION CLAZY CL-CONT
16 Парсинг данных ClosureXML (CXML), S-XML, CL-LIBXML2 CL-JSON DSV SQL, Persistance CLSQL, Postmodern Elephant, AllegroCache
17 Community cliki.net common-lisp.net paste.lisp.org cl-user.net freenode lisp.catap.ru Bill Clementson
18 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
19 Книги Practical Common Lisp ( Let over Lambda On Lisp A Gentle Introduction to Symbolic Computation Successful Lisp ANSI Common Lisp Konrad Barksi's ( Art of Meta-Object Protocol Sketchy Lisp Lisp in Small Pieces Peter Siebel
20 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
21 Еще 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 21 st Century A Bipolar Lisp Programmer Rich Hickey Clojure Values and Change
22 Будущее Lisp reneissance (
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.