SlideShare a Scribd company logo
࠷ۙͷൃలͱ
໨Լ࣮૷தͷมߋ
@ SATYSFI Conf 2021
2021 ೥ 6 ݄ 26 ೔
( @bd_gfngfn)
࠷΋؆ܿʹ‫ͱ͏ݴ‬
• օ͞Μͷ੒Ռɿ ຊ౰ʹૉ੖Β͍͠
• Θͨ͠ͷਐḿɿ μϝͰ͢!
֓ཁ
2
࠷΋؆ܿʹ‫ͱ͏ݴ‬
• օ͞Μͷ੒Ռɿ ຊ౰ʹૉ੖Β͍͠
• Θͨ͠ͷਐḿɿ μϝͰ͢!
※΋ͪΖΜԿ΋΍ͬͯͳ͍Θ͚Ͱ͸ͳ͍ɿ
• SATYSFI ຊମͷ։ൃ΋ਐߦத
– ϚΫϩల։࣌ͷΤϥʔҐஔใࠂ‫ػ‬ೳΛ v0.0.6 ͰϦϦʔε
• ͜ΕͰϚΫϩ‫ػ‬ೳ͕࠷௿‫༻࣮ݶ‬తʹͳͬͨ
– ϞδϡʔϧγεςϜͷ F-ing modules ԽʴͦΕʹ൐͏มߋʢ్தʣ
– OpenType ϥΠϒϥϦͷ࠶࣮૷ʴЋɿ otfm → otfed
• Sesterl ͱ͍͏ผͷ੩త‫ޠݴ͖ͭܕ‬Λ৽ͨʹ࣮૷͍ͯͨ͠
– ಘΒΕͨ‫ޠݴ‬ઃ‫ܭ‬ͷ஌‫͕ݟ‬ SATYSFI ʹ΋ϑΟʔυόοΫͰ͖ͦ͏
ࠓճ͸͜ΕΒͷࡶવͱͨ͠঺հͰ͢
֓ཁ
3
• ௚ۙͷ౤ೖ͞Εͨมߋ
• ௖͍ͨ PR ౳
• ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ
• ໨Լ࣮૷தͷมߋ
• ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
• ϞδϡʔϧγεςϜͷ F-ing modules Խ
• ·ͱΊ
• v0.0.6 (2021-02-06)
– ઢ‫ܕ‬ม‫׵‬ linear-transform-graphics [@monaqa]
– ଟஈ૊Έ page-break-multicolumn
– overfull/underfull ՄࢹԽΦϓγϣϯ —-debug-show-overfull
– ͦͷଞ༗ࢤͷํʑʹΑΔଟ͘ͷमਖ਼ʢCHANGELOG ࢀরʣ
௚ۙͷओͳมߋ
5
• v0.0.6 (2021-02-06)
– ઢ‫ܕ‬ม‫׵‬ linear-transform-graphics [@monaqa]
– ଟஈ૊Έ page-break-multicolumn
– overfull/underfull ՄࢹԽΦϓγϣϯ —-debug-show-overfull
– ͦͷଞ༗ࢤͷํʑʹΑΔଟ͘ͷमਖ਼ʢCHANGELOG ࢀরʣ
• v0.0.7 ༧ఆ
– ֎෦ϑΝΠϧಡΈࠐΈ read-file [@puripuri2100]
– document information dictionary ग़ྗ [@puripuri2100]
– ॲཧ‫ܥ‬Ϗϧυ࣌ͷ Ruby ඇґଘԽ [@leque]
• vminstdef.yaml ͷ಺༰͸ vminst.ml ʹҠߦ
– ਺ࣜதͷʢҰ෦‫߸ه‬আ͘ʣ೚ҙ Unicode ίʔυϙΠϯτ‫ڐ‬༰
• set-math-charͰ Roman, Italic ౳ͷελΠϧʹԠͯ͡ม‫׵‬΋Մೳ
௚ۙͷओͳมߋ
6
• ௚ۙͷ౤ೖ͞Εͨมߋ
• ௖͍ͨ PR ౳
• ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ
• ໨Լ࣮૷தͷมߋ
• ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
• ϞδϡʔϧγεςϜͷ F-ing modules Խ
• ·ͱΊ
😄 ‫ܕ‬ͷ͓͔͛Ͱਝ଎Ͱ਌੾ͳΤϥʔใࠂ͕खʹೖͬͨ
😩 ҰํͰɼͲ͏ͯ͠΋‫ߘݪ‬ͷ‫ه‬ड़͕
൥ࡶʹͳͬͯ͠·͏৔໘͕ग़ͯ͘Δ
• ಛʹυΩϡϝϯτ༻్Ͱ͸‫ܕ‬ͷ‫Ͱ఺؍‬ෳࡶͳσʔλ΋
؆ܿʹॻ͚Δ͜ͱ͕๬·Ε͕ͪ
͓͞Β͍ɿ ௨ৗͷ‫͋͑͞ܕ‬Ε͹ສࣄղܾ͔ʁˠ൱
8
‫಺ޠݴ‬ DSLɿ จࣈྻΛड͚औͬͯύʔε͢ΔίϚϯυΛ
༻ҙ͢Δ
͓͞Β͍ɿ φΠʔϰͳճආࡦ
9
amidakuji(```
|X|-|=|/| |
| |-||-|X|
|=|X|-||=|
|-||-|=|-|
|X|=|-|| |
```);
amidakuji([
[Cross ; Line ; … ];
[Empty ; Line ; … ];
[Double; Cross; … ];
…
]);
ίϚϯυͷධՁ͸ಈతʹʢʹ૊൛ॲཧ։࢝‫ʹޙ‬ʣߦͳΘΕΔͷͰ
DSL ͷߏจղੳ΋ಈతʹߦͳΘΕɼߏจΤϥʔͷൃ‫͕ݟ‬஗͍
• Τϥʔ͕ಈతʹग़Δੈքʹ‫ٯ‬໭Γ
‫಺ޠݴ‬ DSL ͚ͩલॲཧͰ͖Ε͹Α͍ͷͰ
ϚΫϩ‫ߏػ‬Λಋೖͯ͠લॲཧͰ͖ΔΑ͏ʹ͠Α͏
ϚΫϩ‫ʹߏػ‬΋༷ʑͳ࣮‫ํݱ‬๏͕͋Δ͕ɼͦͷ͏ͪͰ΋
ଟஈ֊‫ࢉܭ‬ [Davies 1996] [Taha  Sheard 2000] ʹ‫͠ݱ࣮͍ͯͮج‬Α͏
͓͞Β͍ɿ φΠʔϰͳճආࡦͷ໰୊఺ͱͦͷղܾࡦ
10
• ‫͕ࢉܭ‬ෳ਺ͷεςʔδʹ෼͔Εͨҙຯ࿦Λ΋ͭମ‫ܥ‬
ʴͦΕΛ҆શʹߦͳ͏ͨΊͷ‫ܕ‬γεςϜ
– stage 0, 1, 2, … Ͱɼ֤εςʔδ͸࣍ͷεςʔδͷίʔυΛੜ੒
• ͜͜Ͱ͸ stage 0ʢϚΫϩల։ʣͱ stage 1ʢ௨ৗͷධՁʣͷΈ࢖༻
– Lisp ͷ quasiquote ʹࣅΔ
– ྫɿ MetaML [Taha  Sheard 2000]ɼMetaOCaml [Kiselyov 2014]
Կ͕‫͔͍͠خ‬ʁ
• ‫҆ܕ‬શͳಈతίʔυੜ੒ʹ࢖͑Δ
– ʮϚΫϩఆٛʹ‫͚͕ͭܕ‬͹ɼల։‫ޙ‬ͷϓϩάϥϜ΋‫͕ͭ͘ܕ‬ʯ
͓͞Β͍ɿ ଟஈ֊‫ͱࢉܭ‬͸
11
• ϚΫϩ͸ྫ͑͹ҎԼͷΑ͏ͳ‫͏࢖Ͱܗ‬
– ~(…) ͸ϚΫϩల։Ͱ࢖ΘΕΔ stage 0 ͷ஋ͷҾ਺
– ~ ͷ͔ͭͳ͍Ҿ਺͸ίʔυஅยͱͯ͠ల։݁Ռʹ࢖ΘΕΔ stage 1 ͷҾ਺
• ϚΫϩͷఆ͓ٛΑͼద༻ͦΕࣗମ͕ల։ΑΓલʹ‫ࠪ͞ݕܕ‬ΕΔ
• య‫ܕ‬తʹ͸ϚΫϩల։ʢʹίʔυੜ੒ʣ͸
ҰॠͰऴΘΔͷͰɼϚΫϩల։ʹࣦഊ͢Ε͹
“࣮࣭੩తʹ” ΤϥʔใࠂՄೳ
• MacroML [Ganz, Sabry  Taha 2001]
ͱ͍͏ମ‫͍ۙʹܥ‬ఆࣜԽ
‫ޠݴ‬ઃ‫ܭ‬ͷ֓ཁ
12
repeat@~(3){foo}
% ௨ৗͷධՁͷλΠϛϯάͰ͸
% ࠷ॳ͔Β foofoofoo ͱॻ͍ͯ͋ͬͨͷͱಉ͡ʹͳΔ
amidakuji@~(```
|X|-|=|/| |
| |-||-|X|
|=|X|-||=|
|-||-|=|-|
|X|=|-|| |
```);
• ࠓճͷมߋɿ ϚΫϩల։Ͱࣦഊͨ࣌͠ʹதஅͯ͠
ΤϥʔͷՕॴΛใࠂ͢ΔͨΊͷ‫ػ‬ೳΛ৽ͨʹ௥Ճ
– DSL จࣈྻͷߏจղੳʹࣦഊͨ͠৔߹ʹ΋
Կߦ໨ͷԿจࣈ໨Ͱࣦഊ͔ͨ͠ϥΠϒϥϦͷਫ४Ͱग़ͤΔ
– @`…` ͰίʔυதͷҐஔ͕औΓग़ͤΔจࣈྻϦςϥϧ͕ॻ͚Δ
– @`…` : string * input-position
– get-input-position : input-position - string * int * int
‫ޠݴ‬ઃ‫ܭ‬ͷ֓ཁ
13
amidakuji@~(@```
|X|-|=|/| |
| |-||-|X|
|=|X|-||=|
|-||-|=|-|
|X|=|-|| |
```);
໭Γ஋͸
(ϑΝΠϧ໊, ߦ਺, จࣈ਺)
14
σϞɿ ϚΫϩ͕ਖ਼ৗʹॲཧ͞ΕΔ৔߹
https://drive.google.com/file/d/1l9HeT6Hn_lNn0ptVobVDYwW6T9A8xKvZ/view?usp=sharing
15
σϞɿ DSL ίʔυதʹߏจΤϥʔ͕͋Δ৔߹
https://drive.google.com/file/d/1pbTOSWiflEkTghS3TzlerG5NCcb2iIoI/view?usp=sharing
• ௚ۙͷ౤ೖ͞Εͨมߋ
• ௖͍ͨ PR ౳
• ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ
• ໨Լ࣮૷தͷมߋ
• ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
• ϞδϡʔϧγεςϜͷ F-ing modules Խ
• ·ͱΊ
• σίʔμ/ΤϯίʔμʹखΛՃ͑Δಈ‫ػ‬ɿ
– ϑΥϯτ৘ใΛ SATYSFI ͷਫ४Ͱॊೈʹѻ͑ΔΑ͏ʹ͍ͨ͠
• ߹ࣈɼΧʔχϯάɼࣈ‫੾ܗ‬ସ͑ͱ͍ͬͨ feature ͷ on/off ‫ػ‬ೳ
• άϥϑΟοΫεͷύεͱͯ͠࢖͑ΔΑ͏ʹ͢Δ etc.
– ҟମࣈηϨΫλରԠ
– ͦ΋ͦ΋ OCaml ͰϑΥϯτ৘ใΛ͍͡Γ͍ͨਓ͸
ଟ෼͜ͷੈքʹ 10 ਓ͘Β͍͔͍͠ͳ͍ͷͰࣗ෼Ͱ΍Δ͔͠ͳ͍💪
• ैདྷɿ ‫ط‬ଘϥΠϒϥϦ otfm ΛࣗલͰେ෯֦ு͠࢖༻
– github.com/dbuenzli/otfm → github.com/gfngfn/otfm
– Ұຕ‫Ͱؠ‬εςʔτϑϧͳ࣮૷ɼςετͳ͠
– ‫͜ʹط‬ΕҎ্։ൃΛ‫ܧ‬ଓͨ͘͠ͳ͍ঢ়ଶ
ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
17
• ৽ͨʹθϩ͔Β otfed ͱ͍͏ϥΠϒϥϦΛ࣮૷ͨ͠
– github.com/gfngfn/otfed
– ‫ैʹط‬དྷͷେ෯֦ு൛ otfm ͷαϙʔτൣғΛ໢ཏʢͨ͠͸ͣʣ
• PDF ΁ͷ෦෼ຒΊࠐΈͷ࣮૷΋ OK
– εςʔτϨεɼ҃Δఔ౓͸ςετॻ͍ͯΔ
– OCaml ੡Ͱ͸࠷΋ॆ࣮ͨ͠ OpenType ϥΠϒϥϦʹͳ͔ͬͨ΋
– Ϟδϡʔϧߏ଄Λ੔಴ͯۙ͠ʑ OPAM ʹެ։͍ͨ͠
ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
18
ͱ͍͏Θ͚Ͱ
• ௚ۙͷ౤ೖ͞Εͨมߋ
• ௖͍ͨ PR ౳
• ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ
• ໨Լ࣮૷தͷมߋ
• ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
• ϞδϡʔϧγεςϜͷ F-ing modules Խ
• ·ͱΊ
• ύοέʔδಡࠐΈͷ࢓૊Έ͸΋ͱ΋ͱະ౿ͷ੒Ռใࠂձͷ
਺೔લʹಥ؏޻ࣄͰ࣮૷ͨ͠΋ͷͰɼ͔ͳΓΞυϗοΫ
– ֤ύοέʔδϑΝΠϧؒͷґଘؔ܎Λ΋ͱʹ
τϙϩδΧϧιʔτ͠ɼ1ͭͣͭಉ໊͡લۭؒʹಡΈࠐΉ
• ෳ਺ͷύοέʔδͰఆ໊ٛͨ͠લ͕ͨ·ͨ·ॏෳ͠͏Δ
• ؒ઀తʹ͔͠ґଘ͠ͳ͍ύοέʔδͰఆٛ͞Εͨ΋ͷ΋શͯείʔϓʹೖΔ
– Ϟδϡʔϧ໊͕લۭؒͷ෼཭ʹҰԠ࢖͑Δ͕ɼ
άϩʔόϧʹ΋വ਺΍‫͕ܕ‬ఆٛͰ͖ͯ͠·͏
• ఆ਺ΛϞδϡʔϧ֎͔Βࢦఆ͢Δ‫ه‬ड़͕ࣗવʹ͸Ͱ͖ͣɼ
ϑΥϯτઃఆͳͲ͕ύοέʔδ͝ͱʹܾΊଧͪʹͳΓ΍͍͢
ύοέʔδͱϞδϡʔϧͷ՝୊
20
% ϑΝΠϧઌ಄ʹґଘύοέʔδΛॻ͘
@require: stdjareport
@require: code
⋮
• ϞδϡʔϧγεςϜͷମ‫ͯ͠ͱܥ‬
F-ing modules [Rossberg, Russo  Dreyer 2014] Λ࠾༻͠ҎԼΛαϙʔτ
– ೖΕࢠͷϞδϡʔϧ
– ϑΝϯΫλʢʹ“ϞδϡʔϧΛϞδϡʔϧʹࣸ͢େ͖͍വ਺”ɼ‫ޙ‬ड़ʣ
• 1 ύοέʔδશମ͕ 1 Ϟδϡʔϧʹͳ͍ͬͯΔ΋ͷͷΈೝΊΔ
– ඞཁͳΒͦͷதͰϞδϡʔϧΛೖΕࢠʹ͢Ε͹Α͍
– ෳ਺ϑΝΠϧʹ෼ׂͰ͖Δ‫ߏػ‬͸ద੾ʹ༻ҙ͢Δ
• @require ͳͲͰཅʹґଘͨ͠ύοέʔδ͔͠είʔϓʹೖΕͳ͍
– ൺֱత৽͍͠ଟ͘ͷ‫Ͱޠݴ‬͸͜͏ͳ͍ͬͯΔ͸ͣ
SATYSFI ͱ͸ผʹ։ൃ͍ͯͨ͠‫ޠݴ‬ Sesterl Ͱ͜ΕΒͷ࢓૊ΈΛ
ઌΜͯ͡ಋೖ͠ɼ؆ܿͰ‫ے‬ͷྑ͍ఆࣜԽͩΖ͏ͱ‫͡ײ‬औΕͨ
վળҊ
21
͓͞Β͍ɿ ϑΝϯΫλ͕͋ΔͱͲ͏‫͔͍͠خ‬
22
@require code
module PyCode =
Code.Make(struct
val base-font = (`Menlo`, 1., 0.)
val highlight = Code.Syntax.python3
end)
⋮
{… PyCode.show(`print(“Hi!”)`); …}
• ‫ݱ‬ঢ়ɿ
– code ίϚϯυʹΑͬͯදࣔ͞ΕΔϑΥϯτ͸ܾΊଧͪ
– શମΛมߋ͢Δ API ͷఏ‫ڙ‬΋ՄೳͰ͸͋Δ͕͗ͪ͜ͳ͍
• ͜͏͍ͨ͠ɿ
@require code
⋮
{… code(`print(“Hi!”)`); …}
ϑΝϯΫλCode.Makeʹ
ελΠϧઃఆͷϞδϡʔϧΛ౉͠ɼ
ઃఆ͕൓ө͞Εͨ݁ՌΛ
PyCodeͱ͍͏Ϟδϡʔϧͱͯ͠࢖͏
• ‫ثࠪݕܕ‬͸ͦΕͳΓʹ࣮૷͕ਐߦ
– refactor-internal ͱ͍͏branchͰ࡞‫ۀ‬தʢϦϑΝΫλͰ͸ͳ͍ʣ
– ‫ࡏݱ‬ ʴ3600ߦɼ−1900ߦ ఔ౓ɼମ‫Ͱײ‬͸·࢛ͩ߹໨͘Β͍ʁ
• ‫ޠݴ‬ઃ‫ͯ͠ͱܭ‬ϞδϡʔϧγεςϜͱͷ‫ڞ‬ଘ͕ඇࣗ໌ͳͱ͜Ζɿ
– mutable reference
• relaxed value restriction [Garrigue 2004] ͷ࠶੔උͳͲͷ޻෉͕ཁΔ
• Ͱ͖Ε͹͜ͷࡍ monadic ͳఆࣜԽʹ͍͔ͨ͠΋ʁ
– ଟஈ֊‫ࢉܭ‬
• ௨ৗͷଋറ͸େৎ෉ͦ͏͕ͩɼϚΫϩఆٛ͸‫ڞ‬ଘ͕೉͍͠
– Satyrographos [@na4zagin3] ͱͷ࿈‫͕ܞ‬ඞཁ͔΋
• ‫ݱ‬ঢ়ͷ SATYSFI ͸ OPAM ύοέʔδʹ૬౰͢Δ୯ҐΛ΋ͨͳ͍
ઃ‫ܭ‬ɾ࣮૷ͷਐలͱ༧૝͞ΕΔ೉ॴ
23
• ௚ۙͷ౤ೖ͞Εͨมߋ
• ௖͍ͨ PR ౳
• ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ
• ໨Լ࣮૷தͷมߋ
• ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ
• ϞδϡʔϧγεςϜͷ F-ing modules Խ
• ·ͱΊ
• ࠷ۙಋೖͨ͠ɿ
– ଟஈ૊Έ
– ϚΫϩల։தͷΤϥʔͰҐஔΛใࠂ͢ΔͨΊͷ‫ػ‬ೳ
– ਺ࣜதͰ೚ҙίʔυϙΠϯτ࢖༻Մ
– ௖͍ͨछʑͷ PRɿ
• άϥϑΟοΫεͷઢ‫ܕ‬ม‫׵‬ɼ֎෦ϑΝΠϧಡΈࠐΈɼ
Ruby ґଘআ‫ڈ‬ɼetc.
• ‫ࡏݱ‬ਐߦதɿ
– ϑΥϯτσίʔμ/Τϯίʔμͷ࠶࣮૷ͱ֦ு
– F-ing modules ʹ‫ͮ͘ج‬ϞδϡʔϧγεςϜͷ࣮૷
·ͱΊ
25
• Rowan Davies. A temporal-logic approach to binding-time analysis. In Proc. of LICS’96, pages
184–195, 1996.
• Martin Elsman, Troels Henriksen, Danil Annenkov, and Cosmin E. Oancea. Static interpretation
of higher-order modules in Futhark: functional GPU programming in the large. In Proc. of
ICFP’18, Article 97, 2018.
• Steve Ganz, Amr Sabry, and Walid Taha. Macros as multi-stage computations: type-safe,
generative, binding macros in MacroML. In Proc. of ICFP’01, pages 74–85, 2001.
• Jacques Garrigue. Relaxing the Value Restriction. In Functional and Logic Programming.
FLOPS 2004. Lecture Notes in Computer Science, vol 2998, 2004.
• Oleg Kiselyov. The design and implementation of BER MetaOCaml. In Functional and Logic
Programming. FLOPS 2014. Lecture Notes in Computer Science, vol 8475, 2014.
• Andreas Rossberg, Claudio Russo, and Derek Dreyer. F-ing modules. Journal of Functional
Programming, 24(5), pp. 529–607, 2014.
• Walid Taha and Tim Sheard. Multi-stage programming with explicit annotations. Theoretical
Computer Science, 248 (1-2), pages 211–242, 2000.
ࢀߟจ‫ݙ‬
26

More Related Content

What's hot

C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
Yusuke Sangenya
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
 
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
 
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Cryptokatagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
Yoshihiro Mizoguchi
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
京大 マイコンクラブ
 
双対性
双対性双対性
双対性
Yoichi Iwata
 

What's hot (20)

Map
MapMap
Map
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Cryptokatagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
双対性
双対性双対性
双対性
 

Similar to SATySFi 最近の発展と目下実装中の変更

Parallelization of Graceful Labeling Using Open MP
Parallelization of Graceful Labeling Using Open MPParallelization of Graceful Labeling Using Open MP
Parallelization of Graceful Labeling Using Open MP
IJSRED
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
Jeremy Schneider
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
Masahiko Sawada
 
Bioinformatica p4-io
Bioinformatica p4-ioBioinformatica p4-io
Bioinformatica p4-io
Prof. Wim Van Criekinge
 
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
Jing-Doo Wang
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
Computational Materials Science Initiative
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
Jean Ihm
 
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
openCypher
 
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
シスコシステムズ合同会社
 
Scala / Technology evolution
Scala  / Technology evolutionScala  / Technology evolution
Scala / Technology evolution
Ruslan Shevchenko
 
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
lauratoni4
 
Pregel - Ezequiel Aguilar
Pregel - Ezequiel AguilarPregel - Ezequiel Aguilar
Pregel - Ezequiel Aguilar
Ezequiel Aguilar Gonzalez
 
Angular js活用事例:filydoc
Angular js活用事例:filydocAngular js活用事例:filydoc
Angular js活用事例:filydoc
Keiichi Kobayashi
 
Clickstream data with spark
Clickstream data with sparkClickstream data with spark
Clickstream data with spark
Marissa Saunders
 
An online semantic enhanced dirichlet model for short text
An online semantic enhanced dirichlet model for short textAn online semantic enhanced dirichlet model for short text
An online semantic enhanced dirichlet model for short text
Jay Kumarr
 
Machine Learning @NECST
Machine Learning @NECSTMachine Learning @NECST
Machine Learning @NECST
NECST Lab @ Politecnico di Milano
 
Leveraging Multiple GPUs and CPUs for Graphlet Counting in Large Networks
Leveraging Multiple GPUs and CPUs for  Graphlet Counting in Large Networks Leveraging Multiple GPUs and CPUs for  Graphlet Counting in Large Networks
Leveraging Multiple GPUs and CPUs for Graphlet Counting in Large Networks
Ryan Rossi
 
PHM 2013
PHM 2013PHM 2013
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2
Maté Ongenaert
 

Similar to SATySFi 最近の発展と目下実装中の変更 (20)

Parallelization of Graceful Labeling Using Open MP
Parallelization of Graceful Labeling Using Open MPParallelization of Graceful Labeling Using Open MP
Parallelization of Graceful Labeling Using Open MP
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
Bioinformatica p4-io
Bioinformatica p4-ioBioinformatica p4-io
Bioinformatica p4-io
 
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
Hadoop con 2016_9_10_王經篤(Jing-Doo Wang)
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
 
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
Future features for openCypher: Schema, Constraints, Subqueries, Configurable...
 
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
Cisco Connect Japan 2014:安定した無線 LAN 上でビジネス クリティカルなアプリケーションを利用するには?
 
Scala / Technology evolution
Scala  / Technology evolutionScala  / Technology evolution
Scala / Technology evolution
 
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
Graph Signal Processing for Machine Learning A Review and New Perspectives - ...
 
Pregel - Ezequiel Aguilar
Pregel - Ezequiel AguilarPregel - Ezequiel Aguilar
Pregel - Ezequiel Aguilar
 
Angular js活用事例:filydoc
Angular js活用事例:filydocAngular js活用事例:filydoc
Angular js活用事例:filydoc
 
Clickstream data with spark
Clickstream data with sparkClickstream data with spark
Clickstream data with spark
 
An online semantic enhanced dirichlet model for short text
An online semantic enhanced dirichlet model for short textAn online semantic enhanced dirichlet model for short text
An online semantic enhanced dirichlet model for short text
 
Machine Learning @NECST
Machine Learning @NECSTMachine Learning @NECST
Machine Learning @NECST
 
Leveraging Multiple GPUs and CPUs for Graphlet Counting in Large Networks
Leveraging Multiple GPUs and CPUs for  Graphlet Counting in Large Networks Leveraging Multiple GPUs and CPUs for  Graphlet Counting in Large Networks
Leveraging Multiple GPUs and CPUs for Graphlet Counting in Large Networks
 
cikm14
cikm14cikm14
cikm14
 
PHM 2013
PHM 2013PHM 2013
PHM 2013
 
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2
 

More from T. Suwa

静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
T. Suwa
 
SATySFiのこれからの課題たち
SATySFiのこれからの課題たちSATySFiのこれからの課題たち
SATySFiのこれからの課題たち
T. Suwa
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
T. Suwa
 
ラベルなしオプション引数の型システムと型推論
ラベルなしオプション引数の型システムと型推論ラベルなしオプション引数の型システムと型推論
ラベルなしオプション引数の型システムと型推論
T. Suwa
 
レコード計算の多相型システムと型推論
レコード計算の多相型システムと型推論レコード計算の多相型システムと型推論
レコード計算の多相型システムと型推論
T. Suwa
 
Macrodown -MLが使えるML-
Macrodown -MLが使えるML-Macrodown -MLが使えるML-
Macrodown -MLが使えるML-
T. Suwa
 
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
T. Suwa
 

More from T. Suwa (7)

静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi: その後の発展と今後の課題 @第62回プログラミング・シンポジウム
 
SATySFiのこれからの課題たち
SATySFiのこれからの課題たちSATySFiのこれからの課題たち
SATySFiのこれからの課題たち
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
 
ラベルなしオプション引数の型システムと型推論
ラベルなしオプション引数の型システムと型推論ラベルなしオプション引数の型システムと型推論
ラベルなしオプション引数の型システムと型推論
 
レコード計算の多相型システムと型推論
レコード計算の多相型システムと型推論レコード計算の多相型システムと型推論
レコード計算の多相型システムと型推論
 
Macrodown -MLが使えるML-
Macrodown -MLが使えるML-Macrodown -MLが使えるML-
Macrodown -MLが使えるML-
 
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
TeX言語の展開制御による文書の構造化(TeXユーザの集い2014)
 

Recently uploaded

Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
Kamal Acharya
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
zwunae
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
ssuser7dcef0
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
itech2017
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
Intella Parts
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
symbo111
 

Recently uploaded (20)

Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证成绩单专业办理
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
 

SATySFi 最近の発展と目下実装中の変更

  • 1. ࠷ۙͷൃలͱ ໨Լ࣮૷தͷมߋ @ SATYSFI Conf 2021 2021 ೥ 6 ݄ 26 ೔ ( @bd_gfngfn)
  • 3. ࠷΋؆ܿʹ‫ͱ͏ݴ‬ • օ͞Μͷ੒Ռɿ ຊ౰ʹૉ੖Β͍͠ • Θͨ͠ͷਐḿɿ μϝͰ͢! ※΋ͪΖΜԿ΋΍ͬͯͳ͍Θ͚Ͱ͸ͳ͍ɿ • SATYSFI ຊମͷ։ൃ΋ਐߦத – ϚΫϩల։࣌ͷΤϥʔҐஔใࠂ‫ػ‬ೳΛ v0.0.6 ͰϦϦʔε • ͜ΕͰϚΫϩ‫ػ‬ೳ͕࠷௿‫༻࣮ݶ‬తʹͳͬͨ – ϞδϡʔϧγεςϜͷ F-ing modules ԽʴͦΕʹ൐͏มߋʢ్தʣ – OpenType ϥΠϒϥϦͷ࠶࣮૷ʴЋɿ otfm → otfed • Sesterl ͱ͍͏ผͷ੩త‫ޠݴ͖ͭܕ‬Λ৽ͨʹ࣮૷͍ͯͨ͠ – ಘΒΕͨ‫ޠݴ‬ઃ‫ܭ‬ͷ஌‫͕ݟ‬ SATYSFI ʹ΋ϑΟʔυόοΫͰ͖ͦ͏ ࠓճ͸͜ΕΒͷࡶવͱͨ͠঺հͰ͢ ֓ཁ 3
  • 4. • ௚ۙͷ౤ೖ͞Εͨมߋ • ௖͍ͨ PR ౳ • ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ • ໨Լ࣮૷தͷมߋ • ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ • ϞδϡʔϧγεςϜͷ F-ing modules Խ • ·ͱΊ
  • 5. • v0.0.6 (2021-02-06) – ઢ‫ܕ‬ม‫׵‬ linear-transform-graphics [@monaqa] – ଟஈ૊Έ page-break-multicolumn – overfull/underfull ՄࢹԽΦϓγϣϯ —-debug-show-overfull – ͦͷଞ༗ࢤͷํʑʹΑΔଟ͘ͷमਖ਼ʢCHANGELOG ࢀরʣ ௚ۙͷओͳมߋ 5
  • 6. • v0.0.6 (2021-02-06) – ઢ‫ܕ‬ม‫׵‬ linear-transform-graphics [@monaqa] – ଟஈ૊Έ page-break-multicolumn – overfull/underfull ՄࢹԽΦϓγϣϯ —-debug-show-overfull – ͦͷଞ༗ࢤͷํʑʹΑΔଟ͘ͷमਖ਼ʢCHANGELOG ࢀরʣ • v0.0.7 ༧ఆ – ֎෦ϑΝΠϧಡΈࠐΈ read-file [@puripuri2100] – document information dictionary ग़ྗ [@puripuri2100] – ॲཧ‫ܥ‬Ϗϧυ࣌ͷ Ruby ඇґଘԽ [@leque] • vminstdef.yaml ͷ಺༰͸ vminst.ml ʹҠߦ – ਺ࣜதͷʢҰ෦‫߸ه‬আ͘ʣ೚ҙ Unicode ίʔυϙΠϯτ‫ڐ‬༰ • set-math-charͰ Roman, Italic ౳ͷελΠϧʹԠͯ͡ม‫׵‬΋Մೳ ௚ۙͷओͳมߋ 6
  • 7. • ௚ۙͷ౤ೖ͞Εͨมߋ • ௖͍ͨ PR ౳ • ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ • ໨Լ࣮૷தͷมߋ • ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ • ϞδϡʔϧγεςϜͷ F-ing modules Խ • ·ͱΊ
  • 8. 😄 ‫ܕ‬ͷ͓͔͛Ͱਝ଎Ͱ਌੾ͳΤϥʔใࠂ͕खʹೖͬͨ 😩 ҰํͰɼͲ͏ͯ͠΋‫ߘݪ‬ͷ‫ه‬ड़͕ ൥ࡶʹͳͬͯ͠·͏৔໘͕ग़ͯ͘Δ • ಛʹυΩϡϝϯτ༻్Ͱ͸‫ܕ‬ͷ‫Ͱ఺؍‬ෳࡶͳσʔλ΋ ؆ܿʹॻ͚Δ͜ͱ͕๬·Ε͕ͪ ͓͞Β͍ɿ ௨ৗͷ‫͋͑͞ܕ‬Ε͹ສࣄղܾ͔ʁˠ൱ 8
  • 9. ‫಺ޠݴ‬ DSLɿ จࣈྻΛड͚औͬͯύʔε͢ΔίϚϯυΛ ༻ҙ͢Δ ͓͞Β͍ɿ φΠʔϰͳճආࡦ 9 amidakuji(``` |X|-|=|/| | | |-||-|X| |=|X|-||=| |-||-|=|-| |X|=|-|| | ```); amidakuji([ [Cross ; Line ; … ]; [Empty ; Line ; … ]; [Double; Cross; … ]; … ]);
  • 10. ίϚϯυͷධՁ͸ಈతʹʢʹ૊൛ॲཧ։࢝‫ʹޙ‬ʣߦͳΘΕΔͷͰ DSL ͷߏจղੳ΋ಈతʹߦͳΘΕɼߏจΤϥʔͷൃ‫͕ݟ‬஗͍ • Τϥʔ͕ಈతʹग़Δੈքʹ‫ٯ‬໭Γ ‫಺ޠݴ‬ DSL ͚ͩલॲཧͰ͖Ε͹Α͍ͷͰ ϚΫϩ‫ߏػ‬Λಋೖͯ͠લॲཧͰ͖ΔΑ͏ʹ͠Α͏ ϚΫϩ‫ʹߏػ‬΋༷ʑͳ࣮‫ํݱ‬๏͕͋Δ͕ɼͦͷ͏ͪͰ΋ ଟஈ֊‫ࢉܭ‬ [Davies 1996] [Taha Sheard 2000] ʹ‫͠ݱ࣮͍ͯͮج‬Α͏ ͓͞Β͍ɿ φΠʔϰͳճආࡦͷ໰୊఺ͱͦͷղܾࡦ 10
  • 11. • ‫͕ࢉܭ‬ෳ਺ͷεςʔδʹ෼͔Εͨҙຯ࿦Λ΋ͭମ‫ܥ‬ ʴͦΕΛ҆શʹߦͳ͏ͨΊͷ‫ܕ‬γεςϜ – stage 0, 1, 2, … Ͱɼ֤εςʔδ͸࣍ͷεςʔδͷίʔυΛੜ੒ • ͜͜Ͱ͸ stage 0ʢϚΫϩల։ʣͱ stage 1ʢ௨ৗͷධՁʣͷΈ࢖༻ – Lisp ͷ quasiquote ʹࣅΔ – ྫɿ MetaML [Taha Sheard 2000]ɼMetaOCaml [Kiselyov 2014] Կ͕‫͔͍͠خ‬ʁ • ‫҆ܕ‬શͳಈతίʔυੜ੒ʹ࢖͑Δ – ʮϚΫϩఆٛʹ‫͚͕ͭܕ‬͹ɼల։‫ޙ‬ͷϓϩάϥϜ΋‫͕ͭ͘ܕ‬ʯ ͓͞Β͍ɿ ଟஈ֊‫ͱࢉܭ‬͸ 11
  • 12. • ϚΫϩ͸ྫ͑͹ҎԼͷΑ͏ͳ‫͏࢖Ͱܗ‬ – ~(…) ͸ϚΫϩల։Ͱ࢖ΘΕΔ stage 0 ͷ஋ͷҾ਺ – ~ ͷ͔ͭͳ͍Ҿ਺͸ίʔυஅยͱͯ͠ల։݁Ռʹ࢖ΘΕΔ stage 1 ͷҾ਺ • ϚΫϩͷఆ͓ٛΑͼద༻ͦΕࣗମ͕ల։ΑΓલʹ‫ࠪ͞ݕܕ‬ΕΔ • య‫ܕ‬తʹ͸ϚΫϩల։ʢʹίʔυੜ੒ʣ͸ ҰॠͰऴΘΔͷͰɼϚΫϩల։ʹࣦഊ͢Ε͹ “࣮࣭੩తʹ” ΤϥʔใࠂՄೳ • MacroML [Ganz, Sabry Taha 2001] ͱ͍͏ମ‫͍ۙʹܥ‬ఆࣜԽ ‫ޠݴ‬ઃ‫ܭ‬ͷ֓ཁ 12 repeat@~(3){foo} % ௨ৗͷධՁͷλΠϛϯάͰ͸ % ࠷ॳ͔Β foofoofoo ͱॻ͍ͯ͋ͬͨͷͱಉ͡ʹͳΔ amidakuji@~(``` |X|-|=|/| | | |-||-|X| |=|X|-||=| |-||-|=|-| |X|=|-|| | ```);
  • 13. • ࠓճͷมߋɿ ϚΫϩల։Ͱࣦഊͨ࣌͠ʹதஅͯ͠ ΤϥʔͷՕॴΛใࠂ͢ΔͨΊͷ‫ػ‬ೳΛ৽ͨʹ௥Ճ – DSL จࣈྻͷߏจղੳʹࣦഊͨ͠৔߹ʹ΋ Կߦ໨ͷԿจࣈ໨Ͱࣦഊ͔ͨ͠ϥΠϒϥϦͷਫ४Ͱग़ͤΔ – @`…` ͰίʔυதͷҐஔ͕औΓग़ͤΔจࣈྻϦςϥϧ͕ॻ͚Δ – @`…` : string * input-position – get-input-position : input-position - string * int * int ‫ޠݴ‬ઃ‫ܭ‬ͷ֓ཁ 13 amidakuji@~(@``` |X|-|=|/| | | |-||-|X| |=|X|-||=| |-||-|=|-| |X|=|-|| | ```); ໭Γ஋͸ (ϑΝΠϧ໊, ߦ਺, จࣈ਺)
  • 16. • ௚ۙͷ౤ೖ͞Εͨมߋ • ௖͍ͨ PR ౳ • ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ • ໨Լ࣮૷தͷมߋ • ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ • ϞδϡʔϧγεςϜͷ F-ing modules Խ • ·ͱΊ
  • 17. • σίʔμ/ΤϯίʔμʹखΛՃ͑Δಈ‫ػ‬ɿ – ϑΥϯτ৘ใΛ SATYSFI ͷਫ४Ͱॊೈʹѻ͑ΔΑ͏ʹ͍ͨ͠ • ߹ࣈɼΧʔχϯάɼࣈ‫੾ܗ‬ସ͑ͱ͍ͬͨ feature ͷ on/off ‫ػ‬ೳ • άϥϑΟοΫεͷύεͱͯ͠࢖͑ΔΑ͏ʹ͢Δ etc. – ҟମࣈηϨΫλରԠ – ͦ΋ͦ΋ OCaml ͰϑΥϯτ৘ใΛ͍͡Γ͍ͨਓ͸ ଟ෼͜ͷੈքʹ 10 ਓ͘Β͍͔͍͠ͳ͍ͷͰࣗ෼Ͱ΍Δ͔͠ͳ͍💪 • ैདྷɿ ‫ط‬ଘϥΠϒϥϦ otfm ΛࣗલͰେ෯֦ு͠࢖༻ – github.com/dbuenzli/otfm → github.com/gfngfn/otfm – Ұຕ‫Ͱؠ‬εςʔτϑϧͳ࣮૷ɼςετͳ͠ – ‫͜ʹط‬ΕҎ্։ൃΛ‫ܧ‬ଓͨ͘͠ͳ͍ঢ়ଶ ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ 17
  • 18. • ৽ͨʹθϩ͔Β otfed ͱ͍͏ϥΠϒϥϦΛ࣮૷ͨ͠ – github.com/gfngfn/otfed – ‫ैʹط‬དྷͷେ෯֦ு൛ otfm ͷαϙʔτൣғΛ໢ཏʢͨ͠͸ͣʣ • PDF ΁ͷ෦෼ຒΊࠐΈͷ࣮૷΋ OK – εςʔτϨεɼ҃Δఔ౓͸ςετॻ͍ͯΔ – OCaml ੡Ͱ͸࠷΋ॆ࣮ͨ͠ OpenType ϥΠϒϥϦʹͳ͔ͬͨ΋ – Ϟδϡʔϧߏ଄Λ੔಴ͯۙ͠ʑ OPAM ʹެ։͍ͨ͠ ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ 18 ͱ͍͏Θ͚Ͱ
  • 19. • ௚ۙͷ౤ೖ͞Εͨมߋ • ௖͍ͨ PR ౳ • ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ • ໨Լ࣮૷தͷมߋ • ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ • ϞδϡʔϧγεςϜͷ F-ing modules Խ • ·ͱΊ
  • 20. • ύοέʔδಡࠐΈͷ࢓૊Έ͸΋ͱ΋ͱະ౿ͷ੒Ռใࠂձͷ ਺೔લʹಥ؏޻ࣄͰ࣮૷ͨ͠΋ͷͰɼ͔ͳΓΞυϗοΫ – ֤ύοέʔδϑΝΠϧؒͷґଘؔ܎Λ΋ͱʹ τϙϩδΧϧιʔτ͠ɼ1ͭͣͭಉ໊͡લۭؒʹಡΈࠐΉ • ෳ਺ͷύοέʔδͰఆ໊ٛͨ͠લ͕ͨ·ͨ·ॏෳ͠͏Δ • ؒ઀తʹ͔͠ґଘ͠ͳ͍ύοέʔδͰఆٛ͞Εͨ΋ͷ΋શͯείʔϓʹೖΔ – Ϟδϡʔϧ໊͕લۭؒͷ෼཭ʹҰԠ࢖͑Δ͕ɼ άϩʔόϧʹ΋വ਺΍‫͕ܕ‬ఆٛͰ͖ͯ͠·͏ • ఆ਺ΛϞδϡʔϧ֎͔Βࢦఆ͢Δ‫ه‬ड़͕ࣗવʹ͸Ͱ͖ͣɼ ϑΥϯτઃఆͳͲ͕ύοέʔδ͝ͱʹܾΊଧͪʹͳΓ΍͍͢ ύοέʔδͱϞδϡʔϧͷ՝୊ 20 % ϑΝΠϧઌ಄ʹґଘύοέʔδΛॻ͘ @require: stdjareport @require: code ⋮
  • 21. • ϞδϡʔϧγεςϜͷମ‫ͯ͠ͱܥ‬ F-ing modules [Rossberg, Russo Dreyer 2014] Λ࠾༻͠ҎԼΛαϙʔτ – ೖΕࢠͷϞδϡʔϧ – ϑΝϯΫλʢʹ“ϞδϡʔϧΛϞδϡʔϧʹࣸ͢େ͖͍വ਺”ɼ‫ޙ‬ड़ʣ • 1 ύοέʔδશମ͕ 1 Ϟδϡʔϧʹͳ͍ͬͯΔ΋ͷͷΈೝΊΔ – ඞཁͳΒͦͷதͰϞδϡʔϧΛೖΕࢠʹ͢Ε͹Α͍ – ෳ਺ϑΝΠϧʹ෼ׂͰ͖Δ‫ߏػ‬͸ద੾ʹ༻ҙ͢Δ • @require ͳͲͰཅʹґଘͨ͠ύοέʔδ͔͠είʔϓʹೖΕͳ͍ – ൺֱత৽͍͠ଟ͘ͷ‫Ͱޠݴ‬͸͜͏ͳ͍ͬͯΔ͸ͣ SATYSFI ͱ͸ผʹ։ൃ͍ͯͨ͠‫ޠݴ‬ Sesterl Ͱ͜ΕΒͷ࢓૊ΈΛ ઌΜͯ͡ಋೖ͠ɼ؆ܿͰ‫ے‬ͷྑ͍ఆࣜԽͩΖ͏ͱ‫͡ײ‬औΕͨ վળҊ 21
  • 22. ͓͞Β͍ɿ ϑΝϯΫλ͕͋ΔͱͲ͏‫͔͍͠خ‬ 22 @require code module PyCode = Code.Make(struct val base-font = (`Menlo`, 1., 0.) val highlight = Code.Syntax.python3 end) ⋮ {… PyCode.show(`print(“Hi!”)`); …} • ‫ݱ‬ঢ়ɿ – code ίϚϯυʹΑͬͯදࣔ͞ΕΔϑΥϯτ͸ܾΊଧͪ – શମΛมߋ͢Δ API ͷఏ‫ڙ‬΋ՄೳͰ͸͋Δ͕͗ͪ͜ͳ͍ • ͜͏͍ͨ͠ɿ @require code ⋮ {… code(`print(“Hi!”)`); …} ϑΝϯΫλCode.Makeʹ ελΠϧઃఆͷϞδϡʔϧΛ౉͠ɼ ઃఆ͕൓ө͞Εͨ݁ՌΛ PyCodeͱ͍͏Ϟδϡʔϧͱͯ͠࢖͏
  • 23. • ‫ثࠪݕܕ‬͸ͦΕͳΓʹ࣮૷͕ਐߦ – refactor-internal ͱ͍͏branchͰ࡞‫ۀ‬தʢϦϑΝΫλͰ͸ͳ͍ʣ – ‫ࡏݱ‬ ʴ3600ߦɼ−1900ߦ ఔ౓ɼମ‫Ͱײ‬͸·࢛ͩ߹໨͘Β͍ʁ • ‫ޠݴ‬ઃ‫ͯ͠ͱܭ‬ϞδϡʔϧγεςϜͱͷ‫ڞ‬ଘ͕ඇࣗ໌ͳͱ͜Ζɿ – mutable reference • relaxed value restriction [Garrigue 2004] ͷ࠶੔උͳͲͷ޻෉͕ཁΔ • Ͱ͖Ε͹͜ͷࡍ monadic ͳఆࣜԽʹ͍͔ͨ͠΋ʁ – ଟஈ֊‫ࢉܭ‬ • ௨ৗͷଋറ͸େৎ෉ͦ͏͕ͩɼϚΫϩఆٛ͸‫ڞ‬ଘ͕೉͍͠ – Satyrographos [@na4zagin3] ͱͷ࿈‫͕ܞ‬ඞཁ͔΋ • ‫ݱ‬ঢ়ͷ SATYSFI ͸ OPAM ύοέʔδʹ૬౰͢Δ୯ҐΛ΋ͨͳ͍ ઃ‫ܭ‬ɾ࣮૷ͷਐలͱ༧૝͞ΕΔ೉ॴ 23
  • 24. • ௚ۙͷ౤ೖ͞Εͨมߋ • ௖͍ͨ PR ౳ • ϚΫϩల։தͷΤϥʔใࠂ‫ػ‬ೳ • ໨Լ࣮૷தͷมߋ • ϑΥϯτσίʔμ/ΤϯίʔμͷҠߦ • ϞδϡʔϧγεςϜͷ F-ing modules Խ • ·ͱΊ
  • 25. • ࠷ۙಋೖͨ͠ɿ – ଟஈ૊Έ – ϚΫϩల։தͷΤϥʔͰҐஔΛใࠂ͢ΔͨΊͷ‫ػ‬ೳ – ਺ࣜதͰ೚ҙίʔυϙΠϯτ࢖༻Մ – ௖͍ͨछʑͷ PRɿ • άϥϑΟοΫεͷઢ‫ܕ‬ม‫׵‬ɼ֎෦ϑΝΠϧಡΈࠐΈɼ Ruby ґଘআ‫ڈ‬ɼetc. • ‫ࡏݱ‬ਐߦதɿ – ϑΥϯτσίʔμ/Τϯίʔμͷ࠶࣮૷ͱ֦ு – F-ing modules ʹ‫ͮ͘ج‬ϞδϡʔϧγεςϜͷ࣮૷ ·ͱΊ 25
  • 26. • Rowan Davies. A temporal-logic approach to binding-time analysis. In Proc. of LICS’96, pages 184–195, 1996. • Martin Elsman, Troels Henriksen, Danil Annenkov, and Cosmin E. Oancea. Static interpretation of higher-order modules in Futhark: functional GPU programming in the large. In Proc. of ICFP’18, Article 97, 2018. • Steve Ganz, Amr Sabry, and Walid Taha. Macros as multi-stage computations: type-safe, generative, binding macros in MacroML. In Proc. of ICFP’01, pages 74–85, 2001. • Jacques Garrigue. Relaxing the Value Restriction. In Functional and Logic Programming. FLOPS 2004. Lecture Notes in Computer Science, vol 2998, 2004. • Oleg Kiselyov. The design and implementation of BER MetaOCaml. In Functional and Logic Programming. FLOPS 2014. Lecture Notes in Computer Science, vol 8475, 2014. • Andreas Rossberg, Claudio Russo, and Derek Dreyer. F-ing modules. Journal of Functional Programming, 24(5), pp. 529–607, 2014. • Walid Taha and Tim Sheard. Multi-stage programming with explicit annotations. Theoretical Computer Science, 248 (1-2), pages 211–242, 2000. ࢀߟจ‫ݙ‬ 26