5. /

(on Scrapbox)

Twitter
: #sfcid2017

HyperCard
Macintosh


(1) 100
? ? ?
(2) /
? Makefile使?
(3)
?

/使

/
1, 2, 3 4

=
Programming by Example (PBE)
Programming by Demonstration (PBD)

/
使

()
if(/From: masui.*/){ ...

GUI
GUIGUI
e.g. GUI

/

/

/

Allen Cypher
20?

/

/
/

/

使
()
()
+

使
, ,

UNIX
Reactive Keyboard
Dynamic Macro
POBox
Eager
SnappingEditor

使

UNIXEmacs
% !!
% !c
(completion)
Dynamic abbreviation
/

Demo: Unix

Demo: Emacsdabbrev

e.g. ls -l l
PPM (Prediction by Partial Match)

PPM (Witten)
e.g. `abracadabra
a b 2, c , d 1
ra c 1
bra c 1

(LZ)
+
PPM
/

a , b , c , d 4
2
a 50%, b 25%, c , d 12.5\%
a0, b10, c100, d101
1*0.5 + 2 * 0.25 + 2 * 3 * 0.125 = 1.75/
=


Witten
PPM
1 + 2 = , 1 + 3 = , ... "1 + ", "="
() x * exp(1-x)
.1 mc m+= +/- + 1 = exp * mr =
.2 mc m+= +/- + 1 = exp * mr =
.3 mc m+= +/- + 1 = exp * mr =
.4 mc m+= +/- + 1 = exp * mr =

Dynamic Macro ()
Emacs

Demo: Dynamic Macro

Dynamic Macro
KeySnail
Firefox
mooz

Dynamic Macro
21
" abcabc " + REP " abcabcabc "
" abbabb " + REP " abbabbabb "

Dynamic Macro (Cont'd)
" abcdeab " + REP " abcdeabcde "
+ REP " abcdeabcdeabcde "

使 +
e.g.

POBox ()

POBox
/
使
使

POBox

Demo: POBox

Eager (Cypher)

Eager
HyperCard

Video: Eager

HyperSnapping ()
Dynamic Macro

Demo: HyperSnapping

Smart Make ()
/Makefile
=
/

Smart Make使
101% grep a /etc/passwd > passwd.a
102% grep b /etc/passwd > passwd.b
103% tar cvf passwd.tar passwd.a passwd.b
a passwd.a 2 blocks
a passwd.b 3 blocks
104% compress < passwd.tar > passwd.tar.Z
105% uuencode passwd.tar.Z passwd.tar.Z > passwd.UU
106% ls
passwd.UU passwd.a passwd.b passwd.tar passwd.tar.Z
107% mm
passwd.tar.Z: passwd.tar
   compress < passwd.tar > passwd.tar.Z
passwd.tar: passwd.a passwd.b
   tar cvf passwd.tar passwd.a passwd.b
passwd.b:
   grep b /etc/passwd > passwd.b
passwd.a:
   grep a /etc/passwd > passwd.a

()
Undo
:
10 10
× 10
9 9
90
5 5
18
32 32
50

退Undo使
- 50
退 32
退 5 退
退 9
退 10
20 20 (20)
68 20
30 30 (30)
86 30
...



Editing by Example
TELS
SmallStar
Triggers
Metamouse
Chimera
Mondrian
Layout by Example
KidSIM
Stagecast
Viscuit
CoScripter
Sicri

Editing by Example (Nix)
使
() @i[O.K.] O.K. @i[(1)] (1)

TELS (Mo)
GUI/
///4
222-3456234-5555
2**-**5*
使

/
John Bix, 2416 22 St., N.W., Calgary, T2M 3Y7. 284-4983
Tom Bryce, Suite 1, 2741 Banff Blvd., N.W., Calgary, T2L 1J4. 229-4567
Brent Little, 2429 Cherokee Dr., N.W., Calgary, T2L 2J6. 289-5678
Mike Hermann, 3604 Centre Street, N.W., Calgary, T2M 3X7. 234-0001
John Bix,
2416 22 St., N.W.,
Calgary,
T2M 3Y7.
Tom Bryce,
Suite 1,
2741 Banff Blvd., N.W.,
Calgary,
T2L 1J4.
Brent Little,
2429 Cherokee Dr., N.W.,
Calgary,
T2L 2J6.
Mike Hermann,
3604 Centre Street, N.W.,
Calgary,
T2M 3X7.


(Cont'd)

SmallStar (Halbert)
StarGUI

Triggers (Potter)
e.g. OK
()
&#147;-&#148;

Video: Triggers

Metamouse (Maulsby)

Metamouse
e.g.
rule

Chimera (Kurlander)
/
GUI(Storyboard)

Mondrian (Lieberman)
(Domino)
/

Layout By Example (Hudson)
23...

KidSIM (Cypher)

KidSIM
Graphical Rewrite Rule (GRR)

KidSIM


Viscuit ()
GRR


Agentsheets (Repenning)
GRR

GUI

Agentsheets

CoScripter (Cypher)
Firefox/
Wiki
Chickenfoot


GUI


!

()
(GA, SA)

(GA)
(SA)

GA(GASP)SA(TimberWolf)VLSI



:

AP+BP+CPAP+BP+CP

AP2+BP2+CP2AP^2 + BP^2 + CP^2




(ADD (SUB (ADD (MUL (MUL (MUL (ADD (ADD (ADD SUM(diry) SUM(minangle)) (ADD 44.00 69.00)) (MUL 43.00 MIN(diry))) 5.00) (ADD (ABS MAX(minangle) MIN(dist)) (ADD (ABS 74.00 MIN(dirx)) (ABS 15.00 SUM(locx))))) SUM(minangle)) (MUL 12.00 (CMP (DIV 57.00 MIN(locx)) (CMP 94.00 MIN(intersec))))) (DIV (ABS (MUL (SUB SUM(locy) 27.00) (CMP 28.00 65.00)) 62.00) SUM(dirx))) (CMP (ABS (DIV 67.00 SUM(locy)) (CMP (ABS (ABS 73.00 (CMP 67.00 SUM(dist))) MIN(intersec)) (ABS MIN(dist) MIN(diry)))) MIN(diry)))

使

Biomorph (Richard Dawkins)
Galapagos (Karl Sims)
sbart ()

Biomorph
Blind WatchmakerRichard Dawkins

Biomorph



Galapagos Sims
NTT Intercommunication Center()
9


sbart ()

/
/
/
使

/
使
使
/

Brooks
> /, 使

/

/
/

() PDA
//
使


PBE