From: kai@sevax1.cse.canon.co.jp (Masato Kainou)
Newsgroups: fj.comp.oops
Subject: Re: Eiffel
Date: 16 Dec 92 02:18:46 GMT
Distribution: fj
Organization: System Engineering Center, Canon Inc.,Kawasaki, JAPAN

kono>$B$U$U!#$b$&>/$76qBNE*$K7gE@$r$$$C$F$/$l$k$H$b$C$H$$$$$s(B
$B$G$9$1$I(B :-)
kono>($B$b$C$H(BC++$B$N0-8}$,J9$-$?$$(B...)

COBOL, Basic, gee.. yet another dark cloud has been coming.

$B$^$"(BC++$B$O$R$5$S$5$N(Bbrain dead$B$G$s$J!<$H$+$$$/$i$G$b0-8}$J$i(B
$B8@$($^$9$,!"$3$3$i$X$s$O%a!<%k$G$J$,$J$,$H=q$/$h$j$=$N6Z$N(Bpa
per("On the darker side of C++", Markku Sakkinen)$B$r:FFI$J$5(B
$B$k$H$$$&$3$H$G!#(B

kai>> $B$D$$$G$J$,$iB?=E7Q>5$O!"8@8l;EMM>e$G$-$l$P$h$$$H$$$C(B
kai>>$B$?$b$N$G$O$"$j$^$;$s!#(BC++$B$d0l;~4|$N(BSmalltalk-80$BEy$r9M$((B
$B$F$$(B
kai>>$B$?$@$1$l$P$*$o$+$j$K$J$k$H$*$b$$$^$9(B
kono>$B8@8l;EMM>e0J30$N$3$H$H$O$I$s$J$3$H$G$7$g$&!#$b$C$H$o$+(B
$B$j$d$9$/65$($F$$$?(B
kono>$B$@$1$^$9$+!#KM$O!"C10l7Q>5$O@:L)2=!"6qBN2=(B(is-a)$B$G!"B?(B
$B=E7Q>5$OItIJ2=!"J,(B
kono>$B2r(B(part-of)$B$H$$$&46$8$@$H;W$&$s$G$9!#<B$ON>J}$O$^$C$?$/(B
$BJLJ*$G$9$h$M!#<B(B
kono>$BAu$bA4A30c$&$7!#(B

$B$9$_$^$;$s!"@e$?$i$:$G!#;d$,8@$*$&$H$7$?$3$H$O!"B?=E7Q>5$O!"(B
$B8@8l;EMM>e$G$-$k$h$&$K$J$C$F$$$l$P$h$$$H$$$&$3$H$G$O$J$/!"8@(B
$B8l;EMMA4BN$,$A$c$s$HB?=E7Q>5$,$&$^$/$G$-$k$h$&$K@_7W$5$l$F$J(B
$B$/$F$O$$$1$J$$!"$H$$$&$3$H$G$9!#$?$H$($P(BEiffel$B$N>l9g(Bsegment 
class$B$O(B

segment
  polyline
    polyline_imp
      figure_imp
	dev_const
    open_fig
      figure
	gen_figure
	  graph_const
	  basic_rout
    linked_list
      l_list
	d_list
	  list
	    chain
	      traversable

$B$H$J$C$F$$$^$9!#$3$l$O(BEiffel$B$N(Bdeferred, redefine, define, re
name$BEy$r6n;H$7$F$3$&$$$&$3$H$,$G$-$k$N$G$9!#$^$?(BOOSC$B$rFI$s$G(B
$B$*$i$l$kJ}$J$i$P(Bsegment class$B$G$O(Bclass invariant$B$,$D$$$F$$$k(B
$B$@$m$&$J$HA[A|$5$l$k$H;W$$$^$9!#BP$7$F0l;~4|$N(BSmalltalk(PPS)
$B$G$OB?=E7Q>5$O$G$-$k$h$&$K$J$C$F$^$7$?(B(by Borning & Ingalls)
$B$,$=$l$O$"$/$^$G$D$1$?$7(B($B3+H/4D6-$bB?=E7Q>5$r9M$($F$J$+$C$?(B)
$B$G$[$H$s$I$N(Bsmalltalker$B$O;H$C$F$J$+$C$?$H;W$$$^$9!#(B

kono>$B<B:]$K<+J,$G7Q>59=@.$r:n$k;~$O!">e$+$i:n$k$s$G$7$g$&$+(B
$B!"2<$+$i:n$k$s$G$7(B
kono>$B$g$&$+!#$I$&$b>e$+$i:n$C$F$$$/$HESCf$G$$$-$E$^$k$h$&$J(B
$B5$$,$9$k!#(BFlavor$B$H(B
kono>$B$+(BESP, CLOS$B$O!"2<$+$i:n$C$F$$$C$F8e$+$i$^$H$a$k$H8@$&;W(B
$BA[$,$"$k$H;W$&$s(B
kono>$B$G$9$1$I!#(BLisp$B$H$+(BProlog$B$,$b$H$b$H2<$+$i:n$C$F$$$/$b$N(B
$B$@$+$i$J$!!#(B

TPO$B$K$h$C$F$$$m$$$m$@$H;W$$$^$9!#$?$H$($P>e$K$"$2$?(Bpolyline,
 polygone$BEy$d(Bcircle, ellipse, rectangle$BEy$@$H>e$+$i$-$l$$$K(B
$B:n$C$F$$$1$k$G$7$g$&!#$7$+$7(B

kai>scanner -+-- eiffel_scanner
kai>         |
kai>         +-- c_scanner -+-- objective_c_scanner
kai>         |              |
kai>         |              +-- cplusplus_scanner
kai>         |
kai>         +-- simple_scanner

$B$N$h$&$J$b$N$@$H:G=i%:%s$H$R$H$DF0$/$b$N$r:n$C$F$+$i(B(Liberma
n$B$N(Bprototype$B$_$?$$$J46$8(B)
Rearrange and adjust classes and operations to increase inhe
ritance
Abstract common behavior out of groups of classes
$B$H$9$k$N$G$7$g$&(B("Object-Oriented Modeling and Design", 10.6
, Rumbaugh et al.)$B!#(B
$B$d$O$j$3$3$i$X$s$b%/%i%9$r$I$&:n$k$+$r$J$,$J$,$H=q$/$h$j$b(B"O
bject Oriented Design", Grady Booch$B$N(B4.2$B$"$?$j$r$*FI$_$/$@$5(B
$B$l$P$h$$$+$H;W$$$^$9!#(B

naya>$B$G$b!"(BC$B%W%m%0%i%^!<$r%*%V%8%'%/%H;X8~$K0z$CD%$C$F$/$k$K(B
$B$O!"(B
naya>$B$H$F$bNI$$8@8l$@$H;W$C$F$$$^$9!#(B

$B$3$3$i$X$s$N$3$H$O(BUsenet$B$K$b;~!9$G$F$-$^$9$,$$$o$f$k(Blearning
 curve$B$O(BC++$B$OBgJQ$@$H$$$$$&$N$,>/$J$/$H$b(Bcomp.lang.eiffel$B$d(Bs
malltalk$B$G$O>o<1$H$$$C$?46$8$G$9$,(B($B;d$O(Bcomp.lange.c++$B$NJ}$O(B
$BFI$s$G$^$;$s(B)$B!#;d<+?H$N7P83$+$i$b$=$&;W$$$^$9!#$"$^$jBg$-$J(B
$B@<$G$O8@$($^$;$s$,!";d$O(Blearning curve$B$H$+$$$&0JA0$K$[$\L5M}(B
$B$@$H;W$C$F$^$9!#$D$^$j%W%m%0%i%`$r65$($k$N$K(BPascal$B$d(BC$B$NBe$o(B
$B$j$K(BCobol$B$d(BBasic$B$r;H$&$h$&$J$b$N$G$7$g$&!#(B

naya>Objective-C$B$OK-IY$J%/%i%9%i%$%V%i%j$,$"$k$1$I!"%=!<%9$,(B
$B$J$$$C$FOC$@$7(B
naya>OODB$B$G!"(BObjective-C$B$N%$%s%?!<%U%'!<%9$r;}$C$F$$$k$b$N$b(B
$B!"$"$^$j$_$"$?$i$J$$$7!D(B

Next$B$K8BDj$7$FOC$7$^$9(B(ObjectKit$B$O;H$C$?$3$H$,$"$j$^$;$s(B)$B$H(B
$B!"$?$H$($P(Bls /usr/include/appkit | wc $B$H$9$k$H(B68$B$3(B(2.1J)$B$G$9(B
$B!#(B/usr/include/objc$B$N2<$O%/%i%9$O(B6$B$3DxEY$G$9!#<ANL$H$b$K:#0l(B
$BJb$H;d$,;W$&(BEiffel$B$O$"$/$^$G(BPPS$B$N(BSmalltalk$B$HHf$Y$?>l9g$G$7$F(B
$B!"(BEiffel$B$G$O(B300$B$3<e$O$"$j$^$9!#$D$^$j$H$F$b(BObjective-C$B$OK-IY(B
$B$J%/%i%9%i%$%V%i%j$,$"$k$H$O;d$O;W$$$^$;$s!#$=$7$F8f;XE&$N$H(B
$B$&$j%=!<%9$O$"$j$^$;$s!#$[$+$K$b%&!<%s$H$&$J$k$H$3$m$O$"$k$N(B
$B$G$9$,D9$/$J$k(B($B$H8@$$$J$,$i0l8@$@$1!"(BNextStep$B$O$"$^$j%*%V%8(B
$B%'%/%H;X8~$7$F$$$J$$$H;W$$$^$9(B)$B$N$G$3$l$0$i$$$G!#(B
$B$J$*8f>5CN$H$O;W$$$^$9$,(BEiffel3$B$G$O(BEiffelStore$B$H$$$&$N$,$"$C(B
$B$F(BVersant, Oracle, Ingress$BBP1~$K$J$j$^$9!#(B

naya>Eiffel$B$O!";d$H$7$F$O0lHV%*%V%8%'%/%H;X8~$7$F$k$H;W$$$^(B
$B$9!#(B

$B;d$O(BC++$B$b$=$l$J$j$K%*%V%8%'%/%H;X8~$7$F$k$H;W$$$^$9!#$?$@(BC++
$B$O8@8l;EMM$,%a%?%/%?$J$@$1$@$H;W$$$^$9(B($B$"$H(BGC$B$,$J$$$N$O$$$?(B
$B$$!#;d$,(B8kline$B<e$N%D!<%k$r(BC++$B$G=q$$$?;~(Bmemory leak$B$K$O(B($B$b(B)$B6l(B
$BO+$7$^$7$?(B(new$B$K<BAu$7$?$i$$$$$G$O$J$$$+$H$$$&LdBj$G$O$"$j$^(B
$B$;$s!#$3$l$O(Bhybrid$B$N=IL?$G$9!"$D$^$j(Bobject$B$,(BC$B$NJ}$KEO$5$l$?(B
$B$i$b$&2?$,$J$s$@$+$o$+$i$J$$$H$$$&OC$G$9(B(object$B$,(Bint$B$H$7$F(Bma
squerade$B$5$l$?$i!"$O$?$^$?(Bunion$B$NCf$K3JG<$5$l$?$i(B...)))$B!#(B

takagi>Eiffel $B$O@'Hs;H$C$F$_$?$$!*(B
takagi>$B$G$b!"=hM}7O$,<j85$KL5$$!#$$$/$i$/$i$$$9$k$N$+$J$!!)(B

$BCMCJ$O(B2.3.4$B$@$H(BSS2$B%/%i%9$G(B$3600, Next$B$G(B$1500$B$0$i$$!"(BEiffel-3
$B$@$H(BInterface Builder$B$0$i$$$^$G$=$m$($F(B$4000$B$0$i$$$G$9$+$iHs(B
$B>o$K$*Gc$$F@$@$H;W$$$^$9(B($B650i5!4X$O(Bdiscount$B$"$j(B)$B!#(B

takagi>from x.start until not x.finish loop ... x.next end
takagi>$B$H$+$d$k$i$7$$!#(B
takagi>$B$G$b!"(Bset $B$_$?$$$K=g=x$N$J$$$b$N$K!"(Bnext $B$J$s$F$N$O(B
takagi>$B$*$+$7$$$8$c$J$$$+!*(B
takagi>$B$=$&$$$($P!"(BCLU $B$K(B iterator $B$H$+$$$&$N$,$"$C$?$J!#(B

$B3N$+$K=g=x$O$J$$$N$G$9$,!"$H$K$+$/$H$C$F$/$k(B($B$D$^$j(Bnext(fort
h)$B$H$7$?$H$-$K$I$&$$$&=gHV$K$J$C$F$$$k$+$i$o$+$j$^$;$s!":F8=(B
$B@-$5$($J$$$+$b$7$l$^$;$s(B)$B$H$$$&$3$H$G$7$g$&!#(BEiffel$B$G$O$3$&(B
$B$$$&$b$N$K$O(Biterator$B$r;HMQ$9$k$N$,(Bprogramming style$B$G$9!#(BOOS
C$B$K$O:\$C$F$^$;$s$,(B"Eiffel: The Language"$B$N(B10.13$B$r8fMw$/$@$5(B
$B$$!#(B


			Product Systems development Dept. 2
			System Engineering Center
			$B2|G=(B $B@5?M(B (kai@cse.canon.co.jp)
Newsgroups: fj.comp.oops