

meets with
to run this presentation: be full screen (F11)
to submit the editor code to cloud foundry: ctrl S (command S on Mac)
be careful using 1,2,3... it makes code snippet appears in the editor
Domain-specific language (noun)
a computer programming language of limited expressiveness focused on a particular domain
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
10000110 10000000 11000000 00000101 10000110 10000000 11000000 00000101 10000110 10000000
11000000 00000101 10000110 10000000 11000000 00000101 00000000 00000000 00000000 00010100
00000000 00000000 00000000 00010100 10000110 10000000 11000000 00000101 10000110 10000000
SELECT Bride
FROM SingleWomen
WHERE FatherInLaw = 'Millionaire'
AND Count(Car) > 20
SELECT Cash, Car, BankBalance
FROM FatherInLaw
UPDATE MyBankAccout
SET MyBal = MyBal + FatherInLawBal
INSERT INTO MyCarShed
VALUES('BMW')

Terminology
F = front face
B = back face
R = right face
L = left face
U = up face
D = down face
A letter by itself means turn that face 90 degrees clockwise (eg. F).
A letter followed by an apostrophe means turn that face 90 degrees anti-clockwise (eg. F').
drink beers at green king
['Groovy', 'Scala'].each{ talkAbout it }
diner.willBe 40.minutes.from.now
class HelloSpock extends spock.lang.Specification {
def "length of Spock's and his friends' names"() {
expect:
name.size() == length
where:
name | length
"Spock" | 5
"Kirk" | 4
"Scotty" | 6
}
}
• hook into the compilation process
to modify AST before it is turned into bytecode.
• flexibility without runtime performance penalty
• can be used:
→ either with standard annotation like:
• @TypeChecked + extension: error handling in your DSL
• @Scalify
→ or implement your own:
• native support for scripting:
new GroovyShell().evaluate(content)
• standard support JSR223:
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("groovy");
engine.eval(content))
Method chaining is a common technique for invoking multiple method calls in object-oriented programming languages. Each method returns an object (possibly the current object itself), allowing the calls to be chained together in a single statement.


