Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 187
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 188
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 189
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 194
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 195
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 196
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 197
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 241
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 264
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 269
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 275
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 285
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 286
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 296
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 297
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 298
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 308
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 309
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 310
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 311
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 321
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 322
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 323
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 324
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 325
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 497
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 527
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 540
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 587
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 626
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 670
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 673
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 682
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 688
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 693
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 699
Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410
Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 272
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 110
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 130
Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 295 Didier Verna's Scientific Blog - Tag - ACCUDidier Verna's scientific blog: Lisp, Emacs, LaTeX and random stuff.2024-01-31T17:45:28+00:00Didier Vernaurn:md5:a22c53786aff986a2da4c770c233a8f9DotclearKeynote at ACCU 2014urn:md5:ead2568a8acac80286796e2bbdf26fd9Monday, September 23 2013Monday, September 23 2013Didier VernaMiscellaneousACCUbiologycomputer scienceconferencekeynote <p>I am thrilled to announce that I will be a keynote speaker at the next <a href="http://accu.org/index.php/conferences" hreflang="en">ACCU conference</a>. The abstract of my keynote is given below. Looking forward to see you there!</p>
<h3>Biological Realms in Computer Science</h3>
<p>In biology, evolution is usually seen as a tinkering process, different from
what an engineer does when he plans the development of his systems. Recently,
studies have shown that even in biology, there is a part of good
engineering. As computer scientists, we have much more difficulty to admit
that there is also a great deal of tinkering in what we do, and that our
software systems behave more and more like biological realms every day.</p>
<p>This keynote will take you to a journey through the bonds between biology and
computer science. Starting with an epistemological and historical view, we
will see how these bonds developed over the years, but we will also ask
ourselves whether these bonds were intentionally created, or whether they
already existed, before we even found them. We will also meet the Engineer and
the Tinkerer, and see that they are not necessarily different persons.
Finally, through such notions as Determinism, Predictability and Control, we
will envision and explain a possible future for our software systems seen as
living organisms; a future that's in fact already here, but that we are
reluctant to accept.</p>https://www.didierverna.net/blog/index.php?post/2013/09/23/Keynote-at-ACCU-2014#comment-formhttps://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/125ACCU 2012 session on language extensibilityurn:md5:3577b416d1c0d85eb6ca6a0462ac4dccTuesday, January 3 2012Tuesday, January 3 2012Didier VernaMiscellaneousACCUconferenceDomain Specific LanguagesDSLExtensibility <p>I'm pleased to announce that I will hold a 90 minutes session on language extensibility at the next <a href="http://accu.org/index.php/conferences" hreflang="en">ACCU</a> conference. A shortened abstract is given below (a longer one is available at the conference website).</p>
<h3>Impact of Extensibility on Domain Specific Language Design and Implementation</h3>
<p>Domain-specific languages (DSLs) are usually very different from the
general purpose language (GPL) in which the embedding application is
written. The need for designing a DSL as a completely new language often
comes from the lack of extensibility of the chosen GPL. By imposing a
rigid syntax, a set of predefined operators and data structures, the
traditional GPL approach leaves no choice but to implement a DSL as a
different language, with its own lexical and syntactic parser, semantic
analyzer and possibly its own brand new interpreter or even compiler.</p>
<p>Some GPLs, however, are extensible or customizable enough to let one
implement a DSL merely as either a subset or an extension of the
original language. While the end-user does not see a difference with the
traditional approach, the gain for the developer is substantial. Since
the DSL is now just another entry point for the same original GPL, there
is essentially only one application written in only one language to
maintain. Moreover, no specific language infrastructure (parser,
interpreter, compiler etc.) is required for the DSL anymore, since it is
simply expressed in terms of the original GPL.</p>
<p>The purpose of this presentation is to illustrate the most important
factors that make a language truly extensible, and to show how
extensibility impacts the process of DSL design and implementation.</p>https://www.didierverna.net/blog/index.php?post/2012/01/03/ACCU-2012-session-on-language-extensibility#comment-formhttps://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/94ACCU 2011urn:md5:c46d7f50e01fe6ad362c517b0be8f797Monday, December 6 2010Monday, December 6 2010Didier VernaLispACCUconferencepublication I'm please to announce that I will be giving a talk at the next ACCU conference. The abstract is given below:<br /><br />Meta-circularity... and vice-versa<br /><br />As complexity increases, one often feels limited by the use of a single language, and incorporates new technology in order to express the original problem more abstractly, more precisely, and design solutions more efficiently. Using better-suited languages also has the advantage of letting you think about your problem in new and different ways, perhaps ways that you had not thought of before. It is thus no surprise to see the profusion of new languages that we face today, notably scripting and domain-specific ones.<br /><br />But then, why the need for all this new and different technology? Wouldn't it be better if your primary language could evolve the way you want it to? And why is it not generally possible? Perhaps, because your primary language is not really extensible...<br /><br />Meta-linguistic abstraction, that is, the art of language design plays a capital role in computer science because we have the ability to actually implement the languages we design, for instance by creating interperters for them. A fundamental idea in this context is that an interpreter is just another program (by extension, one could argue that any program is an interpreter for a particular language).<br /><br />In this session, we will revive a historical moment in computer science: the birth of meta-circularity. When, in 1958, John McCarthy invented Lisp, he hadn't foreseen that given the core 7 operators of the language, it was possible to write Lisp in itself, by way of an interpreter. The practical implication of meta-circularity is that a meta-circular language gives you direct control over the semantics of the language itself, and as a consequence, means to modify or extend it. No wonder, then, why lispers never felt the need for external DSLs, scripting languages, XML or whatever. The reason is that Lisp, being extensible, can do all that by itself. Lisp is, by essence, the "programmable programming language".<br />https://www.didierverna.net/blog/index.php?post/2010/12/06/ACCU-2011#comment-formhttps://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/6ACCU 2009 Materialurn:md5:d15f32d7d320aad6dd5d7c673829e5a9Friday, April 24 2009Friday, April 24 2009Didier VernaLispACCUpublication Now that my talk at ACCU 2009 is over, it's okay to post the material here. So I've just uploaded the slides in PDF, and the accompanying source code. You will find all that material <a href="http://www.lrde.epita.fr/~didier/research/publis.php" target="_blank">here</a>. Be sure to start by opening the tarball and reading the README file. Then you can look at the source code and browse the slides in the same time.<br /><br />Enjoy !<br />https://www.didierverna.net/blog/index.php?post/2009/04/24/ACCU-2009-Material#comment-formhttps://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/3490' session at the next ACCU Conferenceurn:md5:4f1f3117bfee3a5e01322ac9426580ddTuesday, January 13 2009Tuesday, January 13 2009Didier VernaLispACCUconferencedesign patternpublicationvisitor I will hold a 90 minutes session at the next <a href="http://www.accu.org" target="_blank">ACCU</a> conference, in the special track on patterns. Here is a description of my talk:<br /><br /><strong><center>Revisiting the Visitor: the "Just Do It" pattern.</center></strong><br /><br />A software design pattern is a three-part rule which expresses a relation between a certain context, a problem, and a solution. The well-known "GoF Book" describes 23 software design patterns. Its influence in the software engineering community has been dramatic. However, Peter Norvig notes that "16 of [these] 23 patterns are either invisible or simpler [...]" in Dylan or Lisp (Design Patterns in Dynamic Programming, Object World, 1996).<br /><br />We claim that this is not a consequence of the notion of "pattern" itself, but rather of the way patterns are generally described; the GoF book being typical in this matter. Whereas patterns are supposed to be general and abstract, the GoF book is actually very much oriented towards mainstream object languages such as C++. As a result, most of its 23 "design patterns" are actually closer to "programming patterns", or "idioms", if you choose to adopt the terminology of the POSA Book.<br /><br />In this talk, we would like to envision software design patterns from the point of view of dynamic languages and specifically from the angle of CLOS, the Common Lisp Object System. Taking the Visitor pattern as an illustration, we will show how a generally useful pattern can be blurred into the language, sometimes to the point of complete disappearance.<br /><br />The lesson to be learned is that software design patterns should be used with care, and in particular, will never replace an in-depth knowledge of your preferred language (in our case, the mastering of first-class and generic functions, lexical closures and meta-object protocol). By using patterns blindly, your risk missing the obvious and most of the time simpler solution: the "Just Do It" pattern.<br />https://www.didierverna.net/blog/index.php?post/2009/01/13/90-session-at-the-next-ACCU-Conference#comment-formhttps://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/43