🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.st80
Article #21

[Goodies] Object Compression and Expansion

#21
From: WATANABE Katsuhiro
Date: Mon, 04 Dec 1995 00:00
86 lines
3427 bytes
$B@DLZ=_$5$s$NBeM}$G!"(BVW2.0$BMQ$N!"05=L%*%V%8%'%/%H$r07$&%0%C%G%#!<%:$r(B
$BEj9F$7$^$9!#D9$$9T$,$"$k$N$G(Buuencode$B$7$^$7$?!#F1$8$b$N$,!"(B
        ftp://ftp.sra.co.jp/pub/lang/smalltalk/goodies/Compress.st.gz
$B$K$bCV$$$F$"$j$^$9!#(B
--
$BEOn49n9(!w#S#R#A(B

================

$B$3$s$K$A$O!"@DLZ(B@SRA$B%3%m%i%I$G$9!#(B

VisualWorks Release 2.0$B>e$G!"05=L%*%V%8%'%/%H$r07$&$?$a$N%0%C(B
$B%G%#!<%:$r8x3+$7$^$9!#(B

$B35MW!'(B

Huffman$B$NId9f2=$rMQ$$$F!"(BBinaryObjectStorage$B$KFI$_=q$-2DG=$J(B
$BG$0U$N%*%V%8%'%/%H$r05=L!?E83+$7$^$9!#(BSmalltalk$B%*%V%8%'%/%H(B
$B%a%b%jFb$KB8:_$9$k;HMQIQEY$N>/$J$/$F%5%$%:$NBg$-$J%*%V%8%'%/(B
$B%H$r4JC1$K05=L$9$k$3$H$,$G$-$^$9!#$^$?!"I,MW$K$J$C$?:]$K$OMF(B
$B0W$K85$N%*%V%8%'%/%H$KI|85$,2DG=$G$9!#(B

$B%$%s%9%H!<%kJ}K!!'(B

Compress.st$B$H$$$&%U%!%$%k$rFI$_9~$s$G2<$5$$!#$9$k$H<!$N(B5$B$D$N(B
$B%/%i%9$,(BObject-Compression$B$H$$$&%+%F%4%jFb$K$G$-$"$,$j$^$9!#(B
$B4{B8$N%/%i%9$d%a%=%C%I$K$O0l@Z$NJQ99$b2C$($F$$$^$;$s!#(B

CompressedObject
CompressedObjectStorage
HuffmanArray
HuffmanCoder
HuffmanNode

$B$3$N%0%C%G!<%:$,5$$KF~$i$:!"85$KLa$9$K$O!">e5-$N(B5$B$D$N%/%i%9(B
$B$r:o=|$7$F2<$5$$!#(B

$B;H$$J}!'(B

$B%*%V%8%'%/%H$r05=L$9$k$?$a$K$O!"(BCompressedObject$B$H$$$&%/%i%9(B
$B$rMxMQ$7$^$9!#(B

"compression"
aCompressedObject := CompressedObject new: anObject.

$B$=$7$F!"I|85$9$k$?$a$K$O!"(BCompressedObject$B%/%i%9$N%$%s%9%?%s(B
$B%9$K(Bexpand$B$N%a%C%;!<%8$rAw$j$^$9!#(B

"expansion"
anObject := aCompressedObject expand.

$B05=L8zN($O0l35$K8@5Z$G$-$^$;$s$,!"(BanObject$B$H$7$F(B100x100$B$N(B256
$B?'$N(BSmalltalk$B2hA|$r;XDj$9$k$H!"05=L$,9T$o$l$F$$$J$$(BanObject
$B$O(B14K$BDxEY$"$j$^$9$,!"05=L$K$h$C$FF@$i$l$?(BaCompressedObject$B$O(B
6K$BDxEY$K$J$j$^$9!#Bg$-$J2hA|$K$J$l$P$J$k$[$I!"$^$?!"7+$jJV$7(B
$B%Q%?%s$,B?$$2hA|$[$I!"05=L8zN($,8~>e$7$^$9!#(B

$B$=$l$+$i!"$*$^$1$K$J$j$^$9$,!"(BBinaryObjectStorage$B$HF1MM$J;H(B
$B$$J}$,$G$-$k(BCompressedObjectStorage$B$bMQ0U$7$^$7$?!#(B

"compression and save"
aCos := CompressedObjectStorage onNew: aWriteStream.
aCos nextPut: anObject.

"load and expansion"
aCos := CompressedObjectStorage onOld: aReadStream.
anObject := aCos next

$B30It%U%!%$%k$N%9%H%j!<%`$r(BaWriteStream$B$d(BaReadStream$B$K;XDj$9(B
$B$k$3$H$K$h$C$F!"05=L$5$l$?(BBOSS$B%U%!%$%k(B(*.bos)$B$r4JC1$K:n@.$7!"(B
$B$=$l$rFI$_=q$-$9$k$3$H$,$G$-$^$9!#(B

ObjectMemory$B$d(BBinaryObjectStorage$B$N@aLs$K$*LrN)$F2<$5$$!#(B

------------------------------------------------------------
 $B@DLZ=_(B (AOKI Atsushi)  URL: http://sracog.srainc.com/~aoki 
 Software Research Associates, Inc.    TEL: +1-303-440-3582 
 1113 Spruce Street, Suite 502         FAX: +1-303-440-3930 
 Boulder, Colorado 80302 U.S.A.       MAIL: aoki@srainc.com 
------------------------------------------------------------

begin 644 Compress.st
<uuencoded_portion_removed>
#(0H*
 
end
Technical Details
Message-ID: <KATSU.95Dec4115352@sras49.sra.co.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 145144,a762ba02554090da,start
X-Google-Attributes: gid145144,public
From: katsu@sra.co.jp (WATANABE Katsuhiro)
Subject: [Goodies] Object Compression and Expansion
Date: 1995/12/04
Message-ID: <KATSU.95Dec4115352@sras49.sra.co.jp>
X-Deja-AN: 120943121
distribution: fj
organization: Software Research Associates, Inc., Japan
newsgroups: fj.lang.st80