Title: Team Suds
1Team Suds
- Michelle Feng Architect
- Mohamed ElTahan System Integrator
- Ji Fang Tools Guru
- McClain Braswell Tester
- Joseph Kaptur Project Manager
2The Session Data Type
3call_my_hubby.suds
- PARTY grandmother on PHONE is 212123098
- PARTY grandfather on PHONE is 3038761234
- CONVERSATION con
- ADD grandmother TO con
- ADD grandfather TO con
4Suds in a nutshell
- Three sections in Suds program
- Initialization
- Commands are executed one by one
- In-call function
- Define what program should do when user type
specific words in command line - Event handler
- The function is activated when an associated
condition becomes true
5Suds programs have aflexible structure
Initialization
In-Call Functions
Event Handlers
- Basic Sections
Actual Suds File
6Suds in a nutshell
- Suds programs compile to Java
- Every Suds program has two phases to its
execution - Execute command in Initialization one by one
- Catch events or words to activate relative
functions
7A problem that Suds can solve
There is a professional telecommunication
language, Suds. I can use it to set a family
conference call for us.
You cannot invite anyone to our family conference
when Dad and I are not in the call.
Mom, my friend Joe would like to join our family
teleconference when you and dad are cooking.
8 Initialization
First part of parental_control.suds
- PARTY mom ON PHONE IS 3136701801
- GROUP parents OF PARTY
- mom,
- PARTY dad ON PHONE IS 2143281283
- END GROUP
- PARTY son ON PHONE IS 6540923472
- CONVERSATION convo
- ADD son TO convo
9Second part of parental_control.suds
In-Call Function
- WHEN addalan DO
- IF convo HAS ANY parents THEN
- PARTY alan ON PHONE IS 4329874328
- ADD alan TO convo
- ELSE
- PRINT Parents not on the phone
- END IF
- END WHEN
10Third part of parental_control.suds
Event Handler
- WHEN convo DOES DROP person DO
- IF NOT convo HAS ANY parents THEN
- FOREACH person IN convo
- IF NOT person IS son THEN
- DROP person FROM convo
- END IF
- END FOREACH
- END IF
- END WHEN
11What's underthe hood?
- Suds
- Sudsc
12call_my_hubby Vs phones_part
13sudsc
JFlex
CUP
- Why a parse tree? (The declare conflict)?
- Scope and the multiple Symbol Tables
- Type checking (Declare Group, Convos)?
14Demo
- Does anyone in the room have a cell phone?