Update of /project/climacs/cvsroot/papers/ilc2005/syntax In directory common-lisp.net:/tmp/cvs-serv10265
Modified Files: climacs-slides.slidemacs Log Message: Add the current version of the slides
Date: Wed Jun 22 19:01:38 2005 Author: bmastenbrook
Index: papers/ilc2005/syntax/climacs-slides.slidemacs diff -u papers/ilc2005/syntax/climacs-slides.slidemacs:1.4 papers/ilc2005/syntax/climacs-slides.slidemacs:1.5 --- papers/ilc2005/syntax/climacs-slides.slidemacs:1.4 Sat Jun 18 04:02:10 2005 +++ papers/ilc2005/syntax/climacs-slides.slidemacs Wed Jun 22 19:01:38 2005 @@ -8,24 +8,28 @@ venue "International Lisp Conference 2005" date } slide "Outline" { -* "What is Climacs?" -* "Abstractions for buffer representation" -* "Abstractions for syntax analysis" -* "Future directions" +* "What is Climacs? Why Climacs?" +* "How does it work?" +* "What will it do in the future?" * "Demos" } slide "Climacs" { * "An editor in the Emacs tradition" * "A framework for syntax-capable editing" * "A CLIM application" -* "Protocols for buffer implementation and syntax analysis" } slide "CLIM" { * "The Common Lisp Interface Manager" * "Standard for user interfaces and graphics in Common Lisp" * "Free implementation in McCLIM" } -slide "Comparable editors" { +slide "Climacs in CLIM" { +* "Display implemented with arbitrary CLIM methods" +* "Here's a presentation:" +reveal "This is a presentation object" "... and this is something it +can do" +} +slide "Historical editors" { * "ZMacs - the famous Lisp machine editor" * "SEdit, the InterLisp structure editor" * "Hemlock, CMUCL's editor" @@ -62,23 +66,36 @@ * "Support for incremental lexers and parsers" * "BYO or use the included Earley parser" } -slide "Syntax protocol, cont." -{ -* "Two major kinds of syntax modes" -* "Per-window parsing functions" -* "Per-buffer parsing functions" +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" } -slide "Syntax protocol, cont." -{ -* "Per-window parsing keeps parse tree up to date in window area" -* "Useful when parser function is slow" -* "Not suitable when parse tree is used for something else" +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" +edge from "ttcn3-entry" to "ttcn3-lexeme" +edge from "ttcn3-lexeme" to /lexeme classes/ +edge from "ttcn3-entry" to /parser production classes/ +edge from "ttcn3-entry" to "empty-ttcn3-terminals" +edge from "ttcn3-entry" to "ttcn3-nonterminal" +edge from "ttcn3-entry" to "ttcn3-terminal" +} +slide "Parser invocation: update-syntax" { +* "(update-syntax buffer (syntax buffer))" +* "buffer has two slots containing marks: top and bot" +* "top and bot denote the region which is out-of-date" +* "Application can call its own parser or invoke Climacs' Earley +parser" } slide "Syntax protocol, cont." { +* "Specializing update-syntax implements per-buffer parsing" * "Per-buffer parsing keeps whole buffer parse tree up to date" * "Useful when parser function is fast, or" -* "when parse tree is used for another application" +* "when complete parse tree is used for another application" } slide "Per-window parsing" { @@ -87,33 +104,38 @@ * "TTCN-3" * "HTML" } +slide "Parser invocation: update-syntax-for-display" { +* "Pane calls update-syntax-for-display with on-screen region" +* "Application updates syntax in the on-screen region" +* "Parsing is based on already up-to-date off-screen region" +} +slide "Syntax protocol, cont." +{ +* "Specializing update-syntax-for-display implements per-window parsing" +* "Per-window parsing keeps parse tree up to date in window area" +* "Useful when parser function is slow" +* "Not suitable when parse tree is used for something else" +} slide "Per-buffer parsing" { * "New Lisp syntax (parsing is fast)" * "Slidemacs syntax (used for slide display)" * "Tabcode editor (used for tablature display)" } -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" +slide "Display" { +* "Climacs is a good CLIM citizen" +* "This means you can use any presentation type or display in a syntax" } -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" -edge from "ttcn3-entry" to "ttcn3-lexeme" -edge from "ttcn3-lexeme" to /lexeme classes/ -edge from "ttcn3-entry" to /parser production classes/ -edge from "ttcn3-entry" to "empty-ttcn3-terminals" -edge from "ttcn3-entry" to "ttcn3-nonterminal" -edge from "ttcn3-entry" to "ttcn3-terminal" +slide "Parse tree display" { +* "Application controls display of parse tree" +* "Could be a simple colorised display of text..." +* "... or a specialized display of the parse tree" } -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 "Parse tree display, cont." { +* "Or it could be any CLIM presentation:" +url "http://www.common-lisp.net/project/climacs/" +reveal "Another presentation" "Hello, world!" +* "Where's the information for that popup?" } slide "Advantages of Earley" { * "No grammar preprocessing required" @@ -126,11 +148,6 @@ * "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..." -* "... or a specialized display of the parse tree" -} slide "Future directions" { * "More improvements to McCLIM (speed, completeness)" * "Better Lisp mode" @@ -151,10 +168,12 @@ } slide "Demos" { * "Lisp mode and incremental parser" +* "Prolog mode" * "Slidemacs mode" * "Tabcode editor" } slide "Thanks!" { * /Questions?/ +url "http://www.common-lisp.net/project/climacs/" } }