SSQ - manipulator for Sets of SeQuences̎gp@

1. Ώۋ@ƋN@
{vO Linux OSœ삷Bigcc, g++, bison, flexgpj
32rbgvZ@z肵Ă邪ARpCIvVݒɂ
64rbg@ɂΉ\B

vŐN@́A
SSQ [-őSeqBDDߓ_] [t@C]
łB

NɃt@Cw肷ƃt@Cɏꂽ߂sBt@C
ȂƕW͂ǂݍށBvZʂ͕Wo͂ɏo͂B[
o͂ɂC^v^`̗p@ƁAt@Co͂ɂtB^`
̗p@̗\łB

{vOł́AŐSeqBDD f[^( 30 byte/node)L
ӂƏ}ɒቺ邽߁A}V̎LTCYɉ
őSeqBDDߓ_w肵A͈͓̔ŋLǗsBiȗl400000Bj
L̈́ANɍŏmۂAKvɉďXɌE܂Ŋg
BvZɎw肵őm[hɒBꍇ͌vZłAxb
Z[Wo͂ivZʂ0ƂȂjB

ij
ssq          C^v^[hŋN
ssq <script>    t@C <script> ɏꂽ߂s
ssq -100000   őZDDߓ_ 100000 ŋN


2. ϐ
{vOł́AACe\uV{ϐvƁAvZʂꎞI
ێLꏊ\uvOϐvgpBV{ϐ͉p
Ŏn܂pAvOϐ͉p啶Ŏn܂pŕ\B
p͍ő255܂łŁAQڈȍ~ɃA_[o[܂ł悢B
V{ϐ͍ő65500܂ŎgpłBvOϐ̌ɐ͂ȂB

W0, ݂̂ȂW1ƕ\B

R}h̒Ńt@Cw肷ꍇAѓ͂GR[ob
NƂɂ́A[pu"vň͂ށB

ij
V{ϐ     a  b  bdd  a5A  f_t6
vOϐ   A  B  X1  X2  BDD  A5a  F_t6
t@C       "a"  "b"  "script1.bem" 


3. ߂̍\
{vÓA{IɍsPʁiPsP߁jœ삷BPsɕ
߂ꍇ́AZ~R ; ŋ؂Bsɂ킽ĂP߂
ꍇ́As̒OɃobNXbVuvuBɃV[v
u#vƁẢs܂ŃRgƂēǂݔ΂B

vO̐Ɋւ閽߂ƂẮÂRB
    source t@C   t@Cɏꂽ߂ĂяoĎsB
    help ܂ ?       gp@\B
    quit ܂ exit    vOIBt@C̏I(EOF)łIB

SSQ̌vZs閽߂́ÂR킩ȂB
E錾 --- gpV{ϐ̖OƏ錾B
E --- vZʂvOϐɑB
Eo͕ --- vZʂX̌`ŕ\B

4. 錾
錾́AgpʒuL̖OƏ炩ߐ錾̂łB

symbol [ V{ϐ [ , V{ϐ, ...] ]

؂̃R}͋󔒂ł悢BV{ϐ̏́Aɐ錾V{ϐ̏ʂɂȂAɓWJBV{ϐPȂꍇ́Aݎgp̃V{ϐꗗ\B

錾͕ɕĎsĂ悢BϐQx錾ꍇ́AxoĂQxڂ̐錾͖B

ij
symbol a, b, c
symbol b, d, e
ƂƁAa b c d ȅɂȂB

錾ĂȂV{ϐvZ̒Ŏgꂽꍇ́ȀŐV
錾̂ƂāAŉʂɒǉixbZ[WojB
ij
symbol a, b, c
print a d + b c
ƂƁAa b c d̏ɂȂB


5. 
́AEӂ̌vZvZAꂽnWӂ̃vO
ϐɑ̂łB

vOϐ = vZ

vOϐ́A炩ߐ錾Kv͂ȂB̍ӂɏ߂
ꂽ_ŁAL̈悪mۂBvOϐ̎gpɐ͂
BvOϐɏd˂đƁAȑO̓eꂽɁA
VlBV{ϐӂɒuƂ͂łȂB܂A
ꂽƂ̂ȂvOϐEӂŎQƂ邱Ƃ͂łȂB

Eӂ̌vZ̕@́ACɏĂBgpł鉉ZqAs
D揇ɋB
      ()
@@@ 
       / 
@@@ % 
@@@ & 
       + 
       - 

 ́AQ̌nW̒ϏWԂBi2̎Cӂ̌n1肾A1ڂ̎on̖2ڂ̎onAڂ邱ƂœnׂďW߂WԂBj

&͐ϏWiintersectionjA+͘aW(union)A-͍W(difference set)vZB

6. o͕
ǒ͕`͎̒ʂłB

print [ /XCb` ] Zp_
print ""

print u?vőpłBXCb`͏o͌`w肷̂ŁA
ȗꍇ́A֐ɉēKɌ₷`IB
pu"vň͂񂾕͂̂܂܃GR[obNB

ȉɁAݎgpłXCb`Ƃ̏o͌`B

   (XCb`Ȃ)@WɊ܂܂nɗ񋓂B
   /size        vZʂSeqBDDߓ_iяnŜ̐ߓ_j\B
   /card       WɊ܂܂ň\B
   /lit          WɊ܂܂n̑̕a\B
   /depth     vZʂSeqBDD̐[iŒoHj\B
   /export    vZʂSeqBDD̍\oB
   /export "<filename>"
                vZʂSeqBDD̍\t@CɏoB

7. s
yC^v^[hz
% ssq
***** SSQ - manipulator for Sets of SeQuences (v0.1) *****
ssq> symbol a b c d
ssq> F = (a b + c)(b d + 1)
ssq> print F
 a b + a b b d + c + c b d
ssq> print /card F
 4
ssq> print /lit F
 10
ssq> print /size F
 5 (5)
ssq> G = (a b + d)(b d + a c)
ssq> print G
 a b a c + a b b d + d a c + d b d
ssq> print F + G
 a b + a b a c + a b b d + c + c b d + d a c + d b d
ssq> print F & G
 a b b d
ssq> print F - G
 a b + c + c b d
ssq> print G / a b
 a c + b d
ssq> print G % a b
 d a c + d b d
ssq> print G / (a b + d)
 a c + b d
ssq> print G % (a b + d)
 0
ssq> quit
%

ȏ
