Update of /project/climacs/cvsroot/papers/ilc2005/syntax In directory common-lisp.net:/tmp/cvs-serv25071
Modified Files: climacs-slides.slidemacs Log Message: Current state of the slides
Date: Sat Jun 18 04:02:10 2005 Author: bmastenbrook
Index: papers/ilc2005/syntax/climacs-slides.slidemacs diff -u papers/ilc2005/syntax/climacs-slides.slidemacs:1.3 papers/ilc2005/syntax/climacs-slides.slidemacs:1.4 --- papers/ilc2005/syntax/climacs-slides.slidemacs:1.3 Fri Jun 17 03:15:09 2005 +++ papers/ilc2005/syntax/climacs-slides.slidemacs Sat Jun 18 04:02:10 2005 @@ -1,8 +1,19 @@ slideset "Syntax Analysis in the Climacs Text Editor" { -info { author "Brian Mastenbrook" +info { author "Brian Mastenbrook (presenting)" institution "Motorola, Inc." +author "Christophe Rhodes" +institution "Department of Computing, Goldsmiths College" +author "Robert Strandh" +institution "Université Bordeaux 1" venue "International Lisp Conference 2005" date } +slide "Outline" { +* "What is Climacs?" +* "Abstractions for buffer representation" +* "Abstractions for syntax analysis" +* "Future directions" +* "Demos" +} slide "Climacs" { * "An editor in the Emacs tradition" * "A framework for syntax-capable editing" @@ -14,10 +25,24 @@ * "Standard for user interfaces and graphics in Common Lisp" * "Free implementation in McCLIM" } +slide "Comparable editors" { +* "ZMacs - the famous Lisp machine editor" +* "SEdit, the InterLisp structure editor" +* "Hemlock, CMUCL's editor" +* "FRED Resembles Emacs Deliberately" +} +graph "Climacs Overview" { +vertical +root "Buffer abstraction" +edge from "Buffer abstraction" to "Syntax protocol" +edge from "Syntax protocol" to "Syntax-aware applications" +edge from "Syntax-aware applications" to "Climacs application" +edge from "Climacs application" to "CLIM" +} slide "Buffer protocol" { -* "Multiple buffer implementations" * "Protocol for editable sequence of objects" +* "Multiple buffer implementations" * "Mark implementation (left and right-sticky marks)" } slide "Buffer protocol, cont." @@ -28,20 +53,7 @@ } slide "Buffer protocol, cont." { -* "Gap buffer has good performance for localized editing operations" -* "Noticable delay to move gap in some situations" -* "Circular gap buffer improves performance in edge cases" -* "Slow to find line / column of given mark" -} -slide "Buffer protocol, cont." -{ -* "Better implementation could combine hemlock-like doubly-linked lists of lines with gap buffer" -* "Doubly-linked list of gap buffers would act as multiple-gap buffer" -* "LRU scheme to convert lines to compact representation" -} -slide "Buffer protocol, cont." -{ -* "Implementation using functional data structures" +* "Another implementation using functional data structures" * "Efficient undo across multiple undo histories" } slide "Syntax protocol" @@ -84,8 +96,10 @@ slide "Lexer and Parser" { * "Incremental lexer creates objects for each lexeme" * "Parser parses lexemes into production classes" +* "In Earley parser, parsing rules can include any code" } graph "Sample parser class hierarchy" { +horizontal root "parse-tree" edge from "parse-tree" to "ttcn3-parse-tree" edge from "ttcn3-parse-tree" to "ttcn3-entry" @@ -96,6 +110,22 @@ edge from "ttcn3-entry" to "ttcn3-nonterminal" edge from "ttcn3-entry" to "ttcn3-terminal" } +slide "Parser invocation" { +* "Climacs calls update-syntax-for-display or update-syntax" +* "Parser is passed top and bottom marks of out-of-date region" +* "Application can call its own parser or invoke Climacs' Earley parser" +} +slide "Advantages of Earley" { +* "No grammar preprocessing required" +* "Accepts full class of context-free grammars" +} +slide "Incremental parsers" { +* "Earley parser can be slow on some grammars" +* "New Lisp mode uses a LR shift/reduce parser and keeps entire +buffer up-to-date" +* "Slidemacs grammar is acceptably fast on Earley parser, but not all +languages are; worst case complexity is O(n^3)" +} slide "Parse tree display" { * "Application controls display of parse tree" * "Could be a simple colorised display of text..." @@ -108,14 +138,23 @@ * "Slidemacs GUI-mode editor" } slide "Future directions, cont." { -* "Beter resynchronization on parse errors" +* "LALR parser generator" +* "Better resynchronization on parse errors" * "More syntax modules" * "Other applications (news readers, mail) using Climacs for editable buffers" } +slide "Conclusion" { +* "Climacs has an exciting future" +* "Flexible buffer protocol enables more abstract editing operations" +* "Syntax protocol enables rich applications" +} slide "Demos" { * "Lisp mode and incremental parser" * "Slidemacs mode" * "Tabcode editor" +} +slide "Thanks!" { +* /Questions?/ } }