Title: Declarative Programming
1Declarative Programming a JourneyHervé
GallaireXerox Chief Technology
Officerxerox.com/innovation
2The early days
- Berkeley 1966
- Hexadecimal Programming . (B. Lampson of the
ALTO and Xerox PARC fame later on) - How to hate low level programming
- Automata and Grammar modeling (M. Harrison)
- Clean and beautiful
- Formal Logic computing and complexity (S. Cook)
- Introduced the theory of NP completeness
- Declarative programming for ever
- Too much?
3Toulouse CERT/SupAero
- 1972 Logic and database- Syntex system
- Inspiration Levien and Maron Rand Corp
1962-1966 - Syntex Relations and objects
- Syntex declarative rules and deductive
information logic engine - Syntex Natural Language querying
- Leading to Logic and Databases books 1978
- J. Minker
- Logic programming started 1976
- A. Colmerauer, R. Kowalski
- 1974 LAU multiprocessor system 4 processors
- Unique assignment language inspired by L.
Tesler and H. Enea 1968 - Execution - data-driven
- Declarative - equations
4CGE Lab de Marcoussis
- Creation of a new division
- 1982 logic and functional systems
- Prolog (and Lisp) machine - MAIA
- Tagged machine
- VLIW
- Very fast
- Logic for verification of programs
5Munich ECRC
- Creation 1984 Bull, ICL, Siemens
- 1984-1989 Logic and declarative everywhere
- Prolog system SEPIA ECLiPSe Opium
- Constraint Logic Programming system - CHIP
- Deductive Database QSQ-Satchmo-EKS-Validity
- Parallel Logic Machine ICM PEPSys
- A rich period for ideas ..
- Declarative systems expansion
- Cosytec
6Xerox declarative programming
- Constraint Logic Programming and Declarative
Systems for Embedded Software - Hybrid concurrent constraint programming model
- Grammar and Finite State machines for Linguistic
Processing - FST engines
- Hierarchical grammars
- Linear Logic for distributed middleware
- CLF coordination language scripting resource
based programming - encapsulation - Proof nets for distributed computations modeling
(transactions) - Aspect-Oriented Programming AspectJ
- Not logic-based about describing aspects of
programs that cut across modules in
object-oriented programming
7Toward Reconfigurable Smart Systems
Control
Ca. 1990 monolithic system, central control
8Model-based print-engine scheduling
- 85 processors
- 192 sensors
- 102 motors
- 3.5 miles wiring
- 5 M lines
- Problem
- 3-20 modules,100s of capabilities
- Customer-configurable machines
- Scheduling complex interactions
- Results
- Auto-Configuration
- Configuration-independent, optimized control
- Toolkit for reactive print engine control in real
time
9Hybrid cc
- Hybrid reactive (discrete) and continuous
- Reactive evolves when environment evolves-
events - Continuous driven e.g. by differential equations
- E.g. paper path has rollers (continuous) and
control (discrete) - Hybrid cc is declarative
- default cc (concurrent constraint programming)
plus single temporal construct (hence) plus
continuous constraints
a a holds now if a then B if a holds now, then B
holds now if a else B if a will not hold now,
then B holds now new X in A there is an instance
AT/X that holds now A, B both A and B hold
now hence A A holds at every instant after now
10Intelligent systems Content managementThe next
frontier
90 of customer communications are through
documents. 80 of knowledge workers activities
are supported by documents
- Direct Mail
- Newsletters
- Product Marketing Brochures
- Product Specifications
- Market Attack Plans
- Letters
- Vouchers
- Coupons
- Checks
- Sales ProgramInformation
- Product Literature
- Sales Manuals
- Proposals/RFPs
- Event Invitations
- Sales Collateral
- Parts Catalogs
- Recruiting Collaterals
- Employee Benefit Communications
- Employee Education
- Statements
- Invoices
- Reporting
- Office Printing
- Commercial Print
- Publishing/Reprographics
- Forms
- Transactional Documents
- Product Drawings
- Work Orders
- Safety Data Sheets
- Change Orders
- Process Sheets
- Product Documentation
11Intelligent systems Content managementThe next
frontier in productivity
- Content manipulation of all types of content
enabling process management - Linguistic, Statistical Learning technologies,
XML enabled - Document Classification The right document at
the right place at the right time - Categorization and Clustering
- Document Tagging Bringing structure to the
document - Authoring and Analysis
- Document Mining Discovering high value in
textual documents - Integration of the non-structured and structured
domains (transactional and non-transactional)
12Closing Comments
- Logic and declarative systems
- Major progress and still exciting future
- Specialized systems versus generic ones
-
- Need to work on relevant problems
- Embedded systems
- Service composition
- Document and knowledge management
- .
- THANK YOU to all those I worked with over 30
years!