Travel report ETAPS 98 (CC 98), Lissabon

This year the CC conference was part of ETAPS, a series of 5 conferences and several workshops. Its URL is http://www.di.fc.ul.pt/~llf/etaps98
 
 
  •  Foundations of Software Science and Computation Structures (FoSSaCS)
  •  Fundamental Approaches to Software Engineering (FASE)
  •  European Symposium On Programming (ESOP)
  •  International Conference on Compiler Construction (CC)
  •  Tools and Algorithms for the Construction and Analysis of Systems (TACAS)
  • At least the latter 3 are interesting for the institute. About 380 people attained the ETAPS; you could meet a lot of people, and ETAPS seems to stabilize as major European conference event. Fiadeiro organized very well, almost everything worked out fine, except some beamer demos. The next ETAPS is in Amsterdam, between 22 and 26 of March 1999.  IPD should send somebody there, showing up seems to be important. Attention: also ECOOP 99 is exactly at the same place. Write papers!

    Lisboa is a pretty city, although old and rotten. Wonderful fish for less money (10-12 DM). Salmon, monc fish, eagle fish, calamares, grilled, cooked, and baked, you miss it after you have tasted it. Nice wine: Messias, Dao, Angelus. Wonderful fresh white wines from whom I don't remember the names. But there is a shop Napoleao who ships to here, so who wants to buy with me?
     

    Invited lectures:

     
  •  Kent Beck, CSLife Boulder, CH: Extreme programming ­ a humanistic discipline of programming. Very nice talk on project management. Beck is one of the Smalltalk popes and does projects with Smalltalk. Major message: all software project management models fail in practice; don't use them, only use 'use cases' (he called them stories) and a incremental development process. Implement some working functionality as early as possible, and refactor that with new use cases.  Testing is done along this process, so that you always have a working version.  Support type schema changes during the development. Stories are directly interviewed with the customer, form requirements, and are written down on small card sheets. When you have implemented all stories, the customer is satisfied. Do important stories first.
  • Randy Bryant, Carnegie Mellon University, USA:  Formal verification of pipelined processors. The father of the ordered binary decision diagrams (OBDD). Very successfull in hardware verification. The verification of hardware pipelines should be looked at by VERIFIX.
  • Margaret Burnett, Oregon State University, USA: Challenges and opportunities visual programming languages bring to programming language research Superficial talk on visual programming. Programming by examples. Visual macro definition. (Karlander). Spreadsheet-based (Burnett). Rule-based (COCOA, KidSim, Smith/Cypher). Well, nothing revolutionary.
  • Cliff Jones, Harlequin Ltd, UK: Some mistakes I made and what I learned from them Jones has been a theorist (VDM) but now works for Harlequin (Postscript, Lisp, ML systems, old COMPARE partner). And he made a talk on mistakes. Main message: theory must be put to practice, else it is useless. Be simple, otherwise nobody will understand you: "Some people can't abstract". His talk was very much critisized (due to all the theorists present), but that only enforced his message. Nice paper, read it.
  • Michael Mislove, Tulane University, USA:  Generalizing domain theory: Some new developments in denotational semantics, they work on modules now, since the old style leads to too complex specifications
  • Amir Pnueli, Weizmann Institute, IL:  Practical formal verification: how close are we? Model checking is the major technique for verification. The extension to software verification should be possible.
  • Gert Smolka, University of Saarbruecken, D:  Concurrent constraint programming as an extension of functional programming Nice talk on how to split LISP futures in two simpler concepts: promises and Smolka-futures.  With those other concepts such as streams, closures, partial applications can easily be built. This should be investigated further, but I don't know whether Smolka has a paper. He wants to integrate the concepts into SML. Interesting.
  • Other talks I attended: FASE and TACAS

    Major remarks: Integration of different formal models is trendy: CSP-Z, PetriNets ++, etc. Model checking used everywhere.
     
  • Constructs, concepts and criteria for reuse in concurrent object-oriented languages, U.Lechner (U St.Gallen, CH): Several kinds of inheritance (oo people, have a look). Uses mu-calculus and model checking with bisimulations for conformance checking (->Welf).
  • Navigation expressions in object-oriented modelling, A.Hamie,  J.Howse and S.Kent (U Brighton, UK):  Navigation expressions are path expressions that collect classes. Similar to graph expressions in Databases and Datalog. Nice.
  • Model-checking CSP-Z, A.Mota and A.Sampaio (U Pernambuco, Br): This and the previous talk presented model checkers for CSP.  CSP-Z is aspect-oriented: CSP events are join points of aspect weaving. This is interesting, since it is the first approach I saw where somebody has used aspect orientedness to integrate two formal models. Important!
  • RELVIEW - a system for calculating with relations and relational programming, R.Behnke, R.Berghammer, E. Meyer and P.Schneider (U Kiel, D): A nice system for relational programming. But only a subset of Datalog. Berghammer didn't even know what Datalog is (!). Explicit fixpoint calculations. But nice visualisations, different interchange formats.  Interesting for FAMOOS: ftp://ftp.informatik.uni-kiel.de/pub/kiel/relview   http://www.informatik.uni-kiel.de/~progsys/relview.html
  • Combining finite automata, parallel programs and SDL using Petri nets, B.Grahlmann (U Hildesheim, D): http://www.informatik.uni-hildesheim.de/~pep/HomePage.html
  • Modular model checking of software, K.Laster and O.Grumberg (Technion, IL), Not attended but interesting!
  • CC

    CC was not so interesting this time. A lot of epsilon talks (ith epsilon progress). Annoying. Parallel to CC ESOP was scheduled. This was a major competition which did harm to CC.
     
  • Myths and facts about the efficient implementation of finite automata and lexical analysis, K.Brouwer, W.Gellerich and E.Ploedereder (U Stuttgart, D) :  Comparisons of scanners on ADA benchmark sets.  Waite's method is the fastest: it encodes states into control flow. Table driven scanners are slower! (but not much slower).  This may also depend on the programming language.
  • Generalised recursive descent parsing and follow-determinism, A.Johnstone and E.Scott (U London, UK): Weak talk on a specific LL parser generator. Naja, schwach.
  •   Analyzing direct non-local dependencies in attribute  grammars, JT.Boyland (CMU, USA): Extension of AG with non-local dependencies (graph-like).
  •   Basic-block graphs: living dinosaurs?, J.Knoop, D.Koschützki (U Passau, D) and B.Steffen (U Dortmund, D): Well. Steffen tried to sell that we should use an edge-based control flow graph in which the edges are nodes (and encode state). But it was not really convincing, in particular, since they had not implemented it in a real compiler. Not enough evidence.
  •   Analysis of loops, F.Martin, M.Alt, C.Ferdinand and R.Wilhelm (U Saarlandes, D): One of the best papers: PAG has been extended to handle loops as procedures. Then first and latter iterations can be distinguished in DFA. Nice.
  •   A new approach to control flow analysis, P.Malacaria and C.Hankin (Imperial College, UK)
  •   Flow logics for constraint based analysis, HR.Nielson and F.Nielson (U Aarhus, DK): Again, Nielson did a hard to understand talk, presenting his logic for abstract interpretation. It can be translated to AGs and to constraint systems. However, didactics.. And he could not answer how to compare to other logic-based approaches such as Warren's XSB, Reps, or Optimix. Sigh.
  •   Extended SSA numbering: introducing SSA properties to languages with multi-level pointers, C.Lapkowski and LJ.Hendren (McGill U, CA): Double SSA numbering for pointers: if p is a pointer, *p gets a second SSA number. Martin does it much better!
  • Strength reduction via SSAPRE, R.Kennedy, F.Chow, P.Dahl and M.Streich (Silicon Graphics, USA): Message: without strength reduction bad partial redundancy elimination. Integration of strenght reduction into the Steffen/Knoop analysis.
  • Detecting parallelism in C programs with recursive data structures, R.Ghiya, LJ.Hendren and Y.Zhu (McGill U, CA):  Somewhat annoying talk, since we could parallelize Modula programs on lists already 1992. They can do more, but some parts are very similar to the old PRISMA system.
  • Mooly Sagiv did a talk on how to find statement dependences in linear time from arbitrary alias analyses. Well.
  • A code motion framework for global instruction scheduling, R.Gupta (U Pittsburgh, USA): Very interesting: scheduling explained as data-flow problem in the style of partial redundancy elimination (upsafe, downsafe etc). This could be a very interesting extension of our BURIS code generation: generate the scheduler data flow equations with Optimix, and integrate it into BURIS (->Thilo).
  • VLIW compilation techniques for superscalar architectures, E.Stümpel, M.Thies and U. Kastens (U Paderborn, D): How to adapt a VLIW backend for superscalars.
  • Portable debugging and profiling, M.Pettersson (INRIA, F): Nice talk about how to introduce a virtual debugger into generated code. Normally generated code can be debugged very difficultly. However, one can generate data and statements for a virtual debugger into the generated code (say breakpoints, stack access, etc) and this helps a lot. Important for all tool builders.

  •