[climacs-cvs] CVS update: papers/ilc2005/syntax/climacs-slides.slidemacs
Brian Mastenbrook
bmastenbrook at common-lisp.net
Sat Jun 18 02:02:10 UTC 2005
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?/
}
}
More information about the Climacs-cvs
mailing list