Title: Lessons from Generative Techniques at Lucent Technologies
1Lessons from Generative Techniques at Lucent
Technologies
- Lloyd H. Nakatani
- Avaya Labs
- Murray Hill, New Jersey
- lhn_at_avaya.com
- Mark Ardis
- Rose-Hulman Institute of Technology
- Terre Haute, Indiana
- Mark.A.Ardis_at_Rose-Hulman.edu
2Three Lessons for DSLs
- 1. Composability
- 2. Composability
- 3. Composability
3InfoWiz Product Line for Jargons
Fit programming language and API library
WizTalk syntax
Jargon J
Semantics S
Model M
Product P
InfoWiz interpreter
Comes with InfoWiz (commonalities)
Created by user (variabilities)
4Example Procedural Jargon
- For modeling algorithms
- heightinputEnter your height
- if( .height gt 72 )
- outputTallercr
- else( .height gt 64 )
- outputMediumcr
- else
- outputShortcr
-
5Example Data Jargon
- For modeling hierarchical data
- person
- name
- firstAlan
- lastTuring
- address
- street600 Mountain Ave.
- townMurray Hill
- stateNJ
- zip07974
- phone(work)908/582-1234
-
6Example Markup Jargon
- For modeling text format
- p
- This is iitalic, this is bbold,
- and this is s(16)big.
7Jargon Composition
S1
S2
S3
InfoWiz interpreter
P
Composite model
8Example Composite Model
- person
- name
- firstAlan
- lastTuring
- if( a-z .person(namefirst) )
- output
- Hello i.person(namefirst)cr
- else
- outputNo namecr
-
9Domain Engineering with Jargons
Decompose
Model
Compose
S1
S2
Subdomain D1
InfoWiz interpreter
Domain model
P
Domain
Subdomain D2
10Example Domain and Subdomains
5ESS Configuration Control Domain
Hardware units and configuration
Target data structures
11Reconfiguration Algorithms
realization(remove) chk(cond,self,working) chk(
cond,spare_mate,ready) invokeelevatespare_mate
invokedelevateself invokeremovechild ch
k(result,abortORfail) set(ack)fail,remove_child
skipexpsendreal invokeinhibitself sendha
rdwareremove chk(result,fail) set(ack)fail,rem
ove invokeallowself skipexpsendreal set(c
ond)remove set(ack)success sendrmtceremove
skipendendreal sendack end
21 lines
InfoWiz interpreter
2423 lines
VFSM code generator
3505 lines
12Hardware Units and Configuration
. . . . . .
Visual modeling tool
642 lines
InfoWiz interpreter
589 lines
13RAD Visual Modeling Tool
14Divide and Conquer Domains
15Composition of Subdomain Models
16Teamwork Today
Domain A
Domain B
Domain C
17Teamwork Tomorrow
Superdomain S
Domain B
Domain A
Subdomain A2
Subdomain A3
Domain C
Subdomain C3
18Conclusions for Generative DSLs
- Multiple DSLs per domain, so they must be ...
- easy to make and maintain
- composable
- to support divide-and-conquer
- to scale up in complexity
- We walked our own talk and made generative DSLs a
product line