Hi APL APL Ideas Precedence rules Array oriented Concise - - PowerPoint PPT Presentation

hi apl apl ideas
SMART_READER_LITE
LIVE PREVIEW

Hi APL APL Ideas Precedence rules Array oriented Concise - - PowerPoint PPT Presentation

Hi APL APL Ideas Precedence rules Array oriented Concise Functions Interactive environment 10 2 4 + 1 = ? 10 2 4 + 1 21 10 (2 (4 + 1)) = 1 10 2 4 + 1 = 1 Array Oriented 1 + 4 = 5 2 + 5 = 7 3


slide-1
SLIDE 1

Hi

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4

APL

slide-5
SLIDE 5

APL

slide-6
SLIDE 6

Ideas

  • Precedence rules
  • Array oriented
  • Concise
  • Functions
  • Interactive environment
slide-7
SLIDE 7

10 ÷ 2 × 4 + 1 = ?

slide-8
SLIDE 8

10 ÷ 2 × 4 + 1 ≠ 21

slide-9
SLIDE 9

10 ÷(2 ×(4 + 1)) = 1

slide-10
SLIDE 10

10 ÷ 2 × 4 + 1 = 1

slide-11
SLIDE 11

Array Oriented

slide-12
SLIDE 12

1 + 4 = 5 2 + 5 = 7 3 + 6 = 9

slide-13
SLIDE 13

1 2 3 + 4 5 6 = 5 7 9

slide-14
SLIDE 14

Concise

  • Symbols!
  • Composition
slide-15
SLIDE 15

Symbols!

+

  • ×

÷

slide-16
SLIDE 16

Bonus Feature!

  • Language Bar-
slide-17
SLIDE 17

In case of “Symbol Crisis” ¡

slide-18
SLIDE 18

In case of “Symbol Crisis” ¡

slide-19
SLIDE 19

Composition

slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22

1 2 3 ∘.× 4 5 6

slide-23
SLIDE 23

1 2 3 ∘.× 4 5 6

4 ¡

slide-24
SLIDE 24

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡

slide-25
SLIDE 25

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡

slide-26
SLIDE 26

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡

slide-27
SLIDE 27

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡

slide-28
SLIDE 28

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡

slide-29
SLIDE 29

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 12 ¡

slide-30
SLIDE 30

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 12 ¡ 15 ¡

slide-31
SLIDE 31

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 12 ¡ 15 ¡ 18 ¡

slide-32
SLIDE 32

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 12 ¡ 15 ¡ 18 ¡

slide-33
SLIDE 33

1 2 3 ∘.× 4 5 6

4 ¡ 5 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 12 ¡ 15 ¡ 18 ¡

slide-34
SLIDE 34

1 2 3 ∘.+ 4 5 6

slide-35
SLIDE 35

1 2 3 ∘.+ 4 5 6

5 ¡

slide-36
SLIDE 36

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡

slide-37
SLIDE 37

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡

slide-38
SLIDE 38

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡

slide-39
SLIDE 39

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡

slide-40
SLIDE 40

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡ 8 ¡

slide-41
SLIDE 41

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡ 8 ¡ 7 ¡

slide-42
SLIDE 42

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡ 8 ¡ 7 ¡ 8 ¡

slide-43
SLIDE 43

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡ 8 ¡ 7 ¡ 8 ¡ 9 ¡

slide-44
SLIDE 44

1 2 3 ∘.+ 4 5 6

5 ¡ 6 ¡ 7 ¡ 6 ¡ 7 ¡ 8 ¡ 7 ¡ 8 ¡ 9 ¡

slide-45
SLIDE 45

1 2 3 ∘., 4 5 6

slide-46
SLIDE 46

1 2 3 ∘., 4 5 6

1,4 ¡

slide-47
SLIDE 47

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡

slide-48
SLIDE 48

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡

slide-49
SLIDE 49

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡

slide-50
SLIDE 50

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡

slide-51
SLIDE 51

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡ 2,6 ¡

slide-52
SLIDE 52

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡ 2,6 ¡ 3,4 ¡

slide-53
SLIDE 53

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡ 2,6 ¡ 3,4 ¡ 3,5 ¡

slide-54
SLIDE 54

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡ 2,6 ¡ 3,4 ¡ 3,5 ¡ 3,6 ¡

slide-55
SLIDE 55

1 2 3 ∘., 4 5 6

1,4 ¡ 1,5 ¡ 1,6 ¡ 2,4 ¡ 2,5 ¡ 2,6 ¡ 3,4 ¡ 3,5 ¡ 3,6 ¡

slide-56
SLIDE 56

1 2 3 +.× 4 5 6

slide-57
SLIDE 57

1 2 3 +.× 4 5 6

4 ¡

slide-58
SLIDE 58

1 2 3 +.× 4 5 6

4 ¡ 10 ¡

slide-59
SLIDE 59

1 2 3 +.× 4 5 6

4 ¡ 10 ¡ 18 ¡

slide-60
SLIDE 60

1 2 3 +.× 4 5 6

4 ¡ 10 ¡ + ¡ 18 ¡ 32 ¡

slide-61
SLIDE 61

1 2 3 +.× 4 5 6

32 ¡

slide-62
SLIDE 62

Anonymous functions

slide-63
SLIDE 63

2 = 10 ÷ 5

slide-64
SLIDE 64

2 = 10 {⍺ ÷ ⍵} 5

slide-65
SLIDE 65

14 = 10 {⍺+(8×(⍵÷⍺))} 5

slide-66
SLIDE 66

Assignment

DividedBy ← {⍺ ÷ ⍵}

slide-67
SLIDE 67
slide-68
SLIDE 68

I wonder...

slide-69
SLIDE 69

Flights

LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ SFO ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SAN ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ OAK ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡

From ¡ To ¡

slide-70
SLIDE 70

OneHop←Flights

LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ SFO ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SAN ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ OAK ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡

From ¡ To ¡

slide-71
SLIDE 71

TwoHops←OneHop +.× OneHop

LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SFO ¡ 0 ¡ 2 ¡ 0 ¡ 0 ¡ SAN ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ OAK ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡

From ¡ To ¡

slide-72
SLIDE 72

ThreeHops←OneHop +.× TwoHops LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 0 ¡ 2 ¡ 0 ¡ 0 ¡ SFO ¡ 2 ¡ 0 ¡ 2 ¡ 0 ¡ SAN ¡ 0 ¡ 2 ¡ 0 ¡ 0 ¡ OAK ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡

From ¡ To ¡

slide-73
SLIDE 73

AllTrips←OneHop + TwoHops + ThreeHops

LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 1 ¡ 3 ¡ 1 ¡ 0 ¡ SFO ¡ 3 ¡ 2 ¡ 3 ¡ 0 ¡ SAN ¡ 1 ¡ 3 ¡ 1 ¡ 0 ¡ OAK ¡ 1 ¡ 1 ¡ 2 ¡ 0 ¡

From ¡ To ¡

slide-74
SLIDE 74
slide-75
SLIDE 75
slide-76
SLIDE 76

+.×

slide-77
SLIDE 77

∨.∧

slide-78
SLIDE 78

TwoHops ← OneHop +.× OneHop LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SFO ¡ 0 ¡ 2 ¡ 0 ¡ 0 ¡ SAN ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ OAK ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡

From ¡ To ¡

slide-79
SLIDE 79

TwoHops ← OneHop ∨.∧ OneHop LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SFO ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ SAN ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ OAK ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡

From ¡ To ¡

slide-80
SLIDE 80

ThreeHops←OneHop ∨.∧ TwoHops LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ SFO ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ SAN ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ OAK ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡

From ¡ To ¡

slide-81
SLIDE 81

AllTrips←OneHop ∨ TwoHops ∨ ThreeHops

LAX ¡ SFO ¡ SAN ¡ OAK ¡ LAX ¡ 1 ¡ 1 ¡ 1 ¡ 0 ¡ SFO ¡ 1 ¡ 1 ¡ 1 ¡ 0 ¡ SAN ¡ 1 ¡ 1 ¡ 1 ¡ 0 ¡ OAK ¡ 1 ¡ 1 ¡ 1 ¡ 0 ¡

From ¡ To ¡

slide-82
SLIDE 82

ThreeHops←OneHop ∨ OneHop ∨.∧ TwoHops NextHops←PrevHops ∨ PrevHops ∨.∧ ThisHops NextHops ← PrevHops {⍺ ∨ ⍺ ∨.∧ ⍵} ThisHops

slide-83
SLIDE 83
slide-84
SLIDE 84

ThreeHops←OneHop ∨ OneHop ∨.∧ TwoHops NextHops←PrevHops ∨ PrevHops ∨.∧ ThisHops NextHops ← PrevHops {⍺ ∨ ⍺ ∨.∧ ⍵} ThisHops AllTrips ← OneHop ({⍺ ∨ ⍺ ∨.∧ ⍵} ⍣3) OneHop AllTrips ← OneHop ({⍺ ∨ ⍺ ∨.∧ ⍵} ⍣ ≡) OneHop AllTripsFor ← {⍵ ({⍺ ∨ ⍺ ∨.∧ ⍵} ⍣ ≡) ⍵}

slide-85
SLIDE 85

AllTripsFor ← {⍵ ({⍺ ∨ ⍺ ∨.∧ ⍵} ⍣ ≡) ⍵}

Or ← ∨ ConnectedTo ← ∨.∧ UntilNoChange ← {⍺ ⍺⍺ ⍣ ≡ ⍵} AppliedTo ← {⍵ ⍺⍺ ⍵}

AllTripsFor←({⍺ Or ⍺ ConnectedTo ⍵} UntilNoChange) AppliedTo

AllTripsFor Flights

slide-86
SLIDE 86

What I covered

  • Precedence rules
  • Array oriented
  • Concise
  • Functions
  • Interactive environment
slide-87
SLIDE 87

Things you didn’t see

  • Memory allocation
  • For loops
  • A source file
  • Types
slide-88
SLIDE 88

Joel@JoelHough.com

slide-89
SLIDE 89

The ¡old ¡guy ¡with ¡no ¡hat ¡... ¡

  • Morten ¡Kromberg, ¡CTO ¡of ¡Dyalog ¡Ltd. ¡

– Dyalog ¡is ¡the ¡leader ¡of ¡the ¡[sMll] ¡emerging ¡APL ¡Market ¡ ¡ – Basingstoke ¡(UK) ¡+ ¡Canada, ¡DK, ¡France, ¡USA ¡

  • 1 ¡year ¡Z80, ¡1 ¡year ¡Commodore ¡BASIC, ¡33 ¡yrs ¡APL ¡

– IBM ¡5100 ¡APL, ¡SHARP ¡APL, ¡IBM ¡VSAPL ¡and ¡APLSV, ¡ DEC ¡APL/SF, ¡MIPS ¡APL ¡(Prime), ¡Data ¡General ¡APL, ¡ IBM ¡APL2, ¡APL*PLUS/PC, ¡APL+Win, ¡and ¡now ¡Dyalog ¡APL ¡

  • Wrote ¡at ¡least ¡one ¡program ¡that ¡I ¡understood ¡in ¡each ¡of: ¡

– 6502 ¡and ¡Z80 ¡Machine ¡code, ¡JCL ¡ – Simula, ¡Pascal, ¡COBOL, ¡C, ¡C#, ¡Java ¡

  • ... ¡(Plus ¡one ¡program ¡in ¡Prolog) ¡
  • CTO ¡of ¡Adaytum, ¡BI ¡”startup” ¡based ¡on ¡APL ¡

– Sold ¡to ¡Cognos ¡in ¡2000 ¡for ¡$160M ¡

slide-90
SLIDE 90

InteracMve ¡Demo ¡

  • A ¡Day ¡in ¡the ¡Life ¡of ¡a ¡Domain ¡Expert ¡

– Domain: ¡History ¡

  • Build ¡a ¡DSL ¡for ¡Playing ¡with ¡Tables ¡
  • Do ¡something ¡that ¡might ¡be ¡hard ¡in ¡SQL ¡
slide-91
SLIDE 91

What ¡I ¡Hope ¡to ¡Show ¡You... ¡

  • That ¡APL ¡is ¡an ¡inherently ¡parallel ¡notaMon ¡which ¡

makes ¡it ¡easy ¡to ¡think ¡about, ¡and ¡”crunch”, ¡arrays ¡

  • That ¡APL ¡encourages ¡the ¡construcMon ¡of ¡funcMonal ¡

DSL’s ¡– ¡without ¡demanding ¡a ¡purely ¡funcMonal ¡ approach ¡to ¡coding ¡

  • That ¡APL ¡is ¡a ¡”tool ¡of ¡thought”, ¡which ¡helps ¡us ¡

discover ¡suitable ¡algorithms ¡and ¡soluMons ¡through ¡ experimentaMon ¡

slide-92
SLIDE 92

What ¡I ¡Hope ¡I ¡Demonstrated... ¡

  • The ¡Data ¡is ¡at ¡your ¡FingerMps™ ¡
  • APL ¡Encourages ¡the ¡construcMon ¡of ¡funcMonal ¡DSLs ¡

– Work ¡closely ¡with ¡-­‑ ¡or ¡BE ¡-­‑ ¡the ¡Domain ¡Expert ¡

  • ... ¡That ¡Dyalog ¡APL ¡blends ¡Array, ¡FuncMonal ¡and ¡

Object ¡Oriented ¡paradigms ¡”seamlessly” ¡

– Allows ¡you ¡to ¡use ¡the ¡Tool ¡of ¡Thought ¡which ¡is ¡appropriate ¡ to ¡the ¡task ¡

  • ... ¡with ¡Mght ¡interop ¡with ¡Object ¡Frameworks ¡

– Provide, ¡Consume ¡and ¡Extend ¡COM, ¡CLR ¡(& ¡soon ¡JVM) ¡ Classes ¡

slide-93
SLIDE 93

Parallelism ¡

  • ”Map” ¡is ¡the ¡default ¡behaviour ¡for ¡many ¡primiMves ¡
  • We ¡automagically ¡parallelize ¡each ¡funcMon ¡in ¡

¡ ¡ ¡ ¡+/ Quantity × Price ÷ Discount ¡

  • IBM ¡APL2 ¡used ¡the ¡”370 ¡Vector ¡Facility” ¡from ¡1987 ¡
  • However, ¡on ¡modern ¡hardware, ¡”interpreted ¡

SIMD” ¡hits ¡memory ¡boqlenecks ¡hard ¡

slide-94
SLIDE 94

Parallelism ¡... ¡

  • We ¡are ¡working ¡on ¡a ¡compiler ¡and ¡considering ¡

”opMonal ¡type ¡declaraMons”, ¡etc. ¡

  • Many ¡”idioms” ¡are ¡already ¡recognized ¡by ¡the ¡
  • interpreter. ¡For ¡example ¡X/⍳⍴X. ¡
  • We ¡have ¡an ¡experimental ¡interpreter ¡w/closures ¡
  • P.Each ¡ ¡ ¡P.Outer ¡P.Rank ¡ ¡ ¡ ¡ ¡ ¡ ¡are ¡mulM-­‑process ¡

versions ¡of ¡familiar ¡APL ¡”operators” ¡

– Refactoring ¡can ¡be ¡handled ¡by ¡non-­‑technical ¡developers ¡ – Insurance ¡company ¡saw ¡5x ¡speedup ¡on ¡8-­‑core ¡i7 ¡for ¡ pension ¡calculaMons ¡ – ”bang ¡for ¡the ¡buck” ¡here ¡and ¡now ¡

slide-95
SLIDE 95

Can ¡an ¡interpreter ¡be ¡FAST? ¡

  • You ¡can ¡always ¡write ¡a ¡faster ¡program ¡in ¡a ¡

compiled ¡language... ¡

– IF ¡you ¡have ¡the ¡Mme ¡to ¡figure ¡out ¡how ¡to ¡do ¡it ¡right ¡ – On ¡large ¡data, ¡APL ¡expressions ¡have ¡VERY ¡LITTLE ¡ interpreter ¡overhead ¡– ¡very ¡few ¡loops ¡

  • (+/⍵÷⍴⍵) ¡can ¡be ¡thought ¡of ¡as ¡”bytecode” ¡

– We ¡have ¡spent ¡30 ¡years ¡opMmizing ¡ ¡1-­‑bit, ¡1-­‑, ¡2-­‑ ¡and ¡4-­‑ byte ¡integers, ¡so ¡arrays ¡are ¡compact ¡

  • ... ¡and ¡memory ¡access ¡is ¡getng ¡expensive ¡

– Some ¡parallelism ¡is ¡automaMc ¡

slide-96
SLIDE 96

In ¡PracMce ¡... ¡

  • On ¡syntheMc ¡benchmarks, ¡C[#]&family ¡usually ¡beat ¡APL ¡
  • ... ¡But ¡large ¡APL ¡applicaMons ¡ouen ¡outperform ¡and ¡

”outscale” ¡compeMtors ¡using ¡compiled ¡languages ¡

  • Close ¡collaboraMon ¡between ¡domain ¡experts ¡and ¡

souware ¡engineers ¡allows ¡efficient ¡operaMons ¡on ¡ compact ¡data ¡representaMons ¡

– In ¡rare ¡cases ¡hotspots ¡are ¡recoded ¡in ¡C ¡& ¡friends ¡auer ¡ ”discovery” ¡in ¡APL ¡(APL ¡code ¡lives ¡on ¡for ¡R&D ¡and ¡QA) ¡

  • It ¡is ¡straighworward ¡to ¡experiment ¡and ¡discover ¡

alternaMve ¡algorithms, ¡and ¡apply ¡mathemaMcal ¡insights ¡

  • Object ¡hierarchies ¡seem ¡to ¡encapsulate ¡data ¡in ¡ways ¡

which ¡severely ¡constrain ¡the ¡set ¡of ¡possible ¡opMmizaMons ¡

slide-97
SLIDE 97

Types ¡and ¡Correctness ¡

  • APL ¡is ¡called ¡”write ¡only” ¡by ¡those ¡who ¡can ¡not ¡read ¡it, ¡ ¡

in ¡pracMce ¡the ¡reverse ¡is ¡true ¡for ¡well-­‑wriqen ¡code ¡

– Compare ¡{+/⍵÷⍴⍵} ¡to ¡tradiMonal ¡alternaMves ¡

  • No ¡type ¡definiMons, ¡almost ¡no ¡loops ¡or ¡other ¡”fluff” ¡
  • Extremely ¡high ¡”semanMc ¡density” ¡leads ¡to ¡Domain ¡Experts ¡being ¡

able ¡to ¡read ¡the ¡code ¡and ¡parMcipate ¡in ¡refactoring ¡

  • Build ¡in ¡hours, ¡refactor ¡& ¡ship ¡frequently ¡-­‑ ¡for ¡decades ¡ ¡
  • The ¡really ¡interesMng ¡bug ¡is ¡the ¡broken ¡algorithm ¡

”The ¡only ¡program ¡that ¡stands ¡a ¡chance ¡of ¡being ¡correct ¡is ¡a ¡short ¡

  • ne.” ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(Arthur ¡Whitney, ¡Kx ¡Systems) ¡

slide-98
SLIDE 98

Some ¡Customers ¡

  • SimCorp ¡(DK), ¡APL ¡Italiana ¡(I), ¡ ¡

Fiserv ¡Investment ¡Services ¡(US), ¡Infostroy ¡Ltd ¡(Russia) ¡

– Leaders ¡in ¡various ¡markets ¡for ¡Asset ¡Management ¡Systems ¡

  • KCI ¡Corp ¡(US) ¡

– BudgeMng ¡and ¡Planning ¡

  • Carlisle ¡Group ¡(US) ¡

– Collateral ¡and ¡SecuriMzaMon ¡for ¡Global ¡Capital ¡Markets ¡

  • ProfDoc ¡Care ¡(Sweden) ¡

– One ¡of ¡the ¡worlds ¡largest ¡PaMent ¡Journal ¡systems ¡with ¡40,000 ¡users ¡and ¡ 2.5 ¡million ¡paMent ¡records ¡in ¡Sweden, ¡and ¡sub-­‑second ¡response ¡

  • ExxonMobil ¡(US) ¡

– OpMmizes ¡the ¡“Cracking” ¡of ¡Petroleum ¡Products ¡using ¡APL ¡

  • Typically ¡used ¡in ¡emerging ¡or ¡constantly ¡churning ¡markets ¡
slide-99
SLIDE 99

Curious? ¡

  • Download ¡free ¡”Mastering ¡Dyalog ¡APL” ¡PDF ¡

¡ ¡ ¡(or ¡buy ¡hardcopy ¡from ¡Amazon) ¡

  • Download ¡a ¡Free ¡Trial ¡System ¡

– Windows ¡32-­‑bit, ¡ ¡ ¡ ¡ ¡Contact ¡Dyalog ¡for ¡trials ¡on ¡other ¡plaworms ¡

→ ¡HTTP://TRYAPL.ORG ¡