{"id":6,"date":"2026-04-05T16:57:02","date_gmt":"2026-04-06T01:57:02","guid":{"rendered":"http:\/\/66.147.244.75\/~prgistit\/?page_id=6"},"modified":"2026-04-06T08:00:28","modified_gmt":"2026-04-06T17:00:28","slug":"projects","status":"publish","type":"page","link":"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/","title":{"rendered":"\u7814\u7a76\u30d7\u30ed\u30b8\u30a7\u30af\u30c8"},"content":{"rendered":"<p><sub>Only recently updated projects are shown. Press button to see the full projects.<\/sub><\/p>\r\n\r\n\r\n\r\n<div id=\"ccchildpages-1\" class=\"ccchildpages onecol simple ccclearfix\"><ul class=\"ccchildpages_list ccclearfix\"><li class=\"page_item page-item-2581 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/\">GPGPU<\/a> 2026-04-06\n<ul class='children'>\n\t<li class=\"page_item page-item-9488\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/fine-grained-threads\/\">GPGPU\u5411\u3051\u7d30\u7c92\u5ea6\u30b9\u30ec\u30c3\u30c9\u6a5f\u69cb<\/a> 2026-04-06<\/li>\n\t<li class=\"page_item page-item-2634\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/dynasoar\/\">DynaSOAr: GPGPU\u306e\u305f\u3081\u306e\u9ad8\u52b9\u7387\u306a\u4e26\u5217\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30a2\u30ed\u30b1\u30fc\u30bf<\/a> 2025-08-22<\/li>\n\t<li class=\"page_item page-item-21\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/ikra\/\">GPGPU\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u305f\u3081\u306eRuby\u8a00\u8a9e\u51e6\u7406\u7cfbIkra<\/a> 2025-08-22<\/li>\n\t<li class=\"page_item page-item-3305\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/sanajeh-2\/\">Sanajeh: GPGPU\u306e\u305f\u3081\u306ePython\u9818\u57df\u7279\u5316\u8a00\u8a9e<\/a> 2023-03-01<\/li>\n\t<li class=\"page_item page-item-3047\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/extending-the-lift-intermediate-language-for-gpgpu\/\">GPGPU\u306e\u305f\u3081\u306eLIFT\u4e2d\u9593\u8a00\u8a9e\u306e\u62e1\u5f35<\/a> 2022-11-13<\/li>\n\t<li class=\"page_item page-item-795\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/gpgpu\/gpucsl\/\">GPGPU\u306e\u305f\u3081\u306e\u4e26\u884c\u5206\u96e2\u8ad6\u7406\u306eCoq\u306b\u3088\u308b\u5065\u5168\u6027\u8a3c\u660e<\/a> 2020-01-18<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-2744 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/teaching-programming\/\">\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u6559\u80b2<\/a> 2026-04-06\n<ul class='children'>\n\t<li class=\"page_item page-item-2746\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/teaching-programming\/design-recipes\/\">\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u300a\u8a2d\u8a08\u3059\u308b\u3053\u3068\u300b\u306e\u6559\u80b2<\/a> 2026-04-06<\/li>\n\t<li class=\"page_item page-item-4494\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/teaching-programming\/enerror-generating-quiz\/\">\u30a8\u30e9\u30fc\u751f\u6210\u30af\u30a4\u30ba<\/a> 2025-02-04<\/li>\n\t<li class=\"page_item page-item-6227\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/teaching-programming\/simsym\/\">SimSym: \u7269\u7406\u30e2\u30c7\u30eb\u8a18\u8ff0\u3092\u901a\u3057\u3066\u5b66\u3076\u7269\u7406\u30b7\u30df\u30e5\u30ec\u30fc\u30bf<\/a> 2023-09-12<\/li>\n\t<li class=\"page_item page-item-5936\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/teaching-programming\/legibility\/\">\u30b3\u30fc\u30c9\u8996\u8a8d\u6027<\/a> 2023-07-21<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-3239 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/reactive-programming\/\">\u53cd\u5fdc\u7684\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2026-03-16\n<ul class='children'>\n\t<li class=\"page_item page-item-3242\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/reactive-programming\/signal-classes\/\">\u4fe1\u53f7\u30af\u30e9\u30b9<\/a> 2026-03-16<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-2733 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/\">\u578b\u30b7\u30b9\u30c6\u30e0<\/a> 2026-03-10\n<ul class='children'>\n\t<li class=\"page_item page-item-8534 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/continuations-and-effects\/\">\u7d99\u7d9a\u3068\u30a8\u30d5\u30a7\u30af\u30c8<\/a> 2026-03-10\n\t<ul class='children'>\n\t\t<li class=\"page_item page-item-2738\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/continuations-and-effects\/dependent-types-and-effects\/\">\u4f9d\u5b58\u578b\u3068\u30a8\u30d5\u30a7\u30af\u30c8<\/a> 2026-03-10<\/li>\n\t\t<li class=\"page_item page-item-8544\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/continuations-and-effects\/object-oriented-programming-language-with-control-operators\/\">\u5236\u5fa1\u6f14\u7b97\u5b50\u3092\u6301\u3064\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a00\u8a9e<\/a> 2025-01-18<\/li>\n\t\t<li class=\"page_item page-item-6007\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/?page_id=6007\">\u30a8\u30d5\u30a7\u30af\u30c8\u6a5f\u69cb\u306e\u9593\u306e\u578b\u5b89\u5168\u306a\u5909\u63db<\/a> 2024-12-13<\/li>\n\t<\/ul>\n<\/li>\n\t<li class=\"page_item page-item-8573\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/type-systems-for-computational-resource-management\/\">\u8a08\u7b97\u8cc7\u6e90\u7ba1\u7406<\/a> 2026-03-10<\/li>\n\t<li class=\"page_item page-item-8551\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/gradual-typing\/\">\u6f38\u9032\u7684\u578b\u4ed8\u3051<\/a> 2025-11-07<\/li>\n\t<li class=\"page_item page-item-8655\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/typesystem\/shape-types\/\">\u914d\u5217\u30fb\u30c6\u30f3\u30bd\u30eb\u5f62\u72b6\u306e\u305f\u3081\u306e\u578b\u30b7\u30b9\u30c6\u30e0<\/a> 2024-12-23<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-8492 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/\">\u5148\u9032\u7684\u30e2\u30b8\u30e5\u30fc\u30eb\u6a5f\u69cb<\/a> 2026-03-10\n<ul class='children'>\n\t<li class=\"page_item page-item-2660\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/version-programming\/\">\u7248(\u30d0\u30fc\u30b8\u30e7\u30f3)\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2026-03-10<\/li>\n\t<li class=\"page_item page-item-2648\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/energy-aware-programming\/\">\u8cc7\u6e90\u610f\u8b58\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2024-11-28<\/li>\n\t<li class=\"page_item page-item-2583 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/context-oriented-programming\/\">\u6587\u8108\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2024-11-28\n\t<ul class='children'>\n\t\t<li class=\"page_item page-item-135\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/context-oriented-programming\/eventcj\/\">\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u6587\u8108\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2021-03-26<\/li>\n\t\t<li class=\"page_item page-item-129\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/context-oriented-programming\/context-oriented-programming-in-java\/\">Java\u306b\u3088\u308b\u6587\u8108\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2021-01-24<\/li>\n\t\t<li class=\"page_item page-item-306\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/context-oriented-programming\/foundations-of-cop\/\">\u6587\u8108\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u57fa\u790e<\/a> 2020-01-18<\/li>\n\t<\/ul>\n<\/li>\n\t<li class=\"page_item page-item-2577 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/\">\u30a2\u30b9\u30da\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e<\/a> 2024-11-28\n\t<ul class='children'>\n\t\t<li class=\"page_item page-item-162\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/association-aspects\/\">Association Aspects: \u9023\u60f3\u30a2\u30b9\u30da\u30af\u30c8<\/a> 2025-08-13<\/li>\n\t\t<li class=\"page_item page-item-103\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/dflow\/\">Dflow : \u30c7\u30fc\u30bf\u30d5\u30ed\u30fc\u3092\u6271\u3048\u308b\u30a2\u30b9\u30da\u30af\u30c8\u6307\u5411\u8a00\u8a9e\u306e\u62e1\u5f35<\/a> 2021-03-07<\/li>\n\t\t<li class=\"page_item page-item-153\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/test-based-pointcuts\/\">\u30c6\u30b9\u30c8\u306b\u57fa\u3065\u3044\u305f\u30dd\u30a4\u30f3\u30c8\u30ab\u30c3\u30c8<\/a> 2021-02-22<\/li>\n\t\t<li class=\"page_item page-item-143\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/type-relaxed-weaving\/\">\u578b\u7de9\u548c\u7e54\u8fbc<\/a> 2021-02-14<\/li>\n\t\t<li class=\"page_item page-item-2684\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/broken-pointcuts\/\">\u58ca\u308c\u305f\u30dd\u30a4\u30f3\u30c8\u30ab\u30c3\u30c8\u306e\u691c\u51fa<\/a> 2020-02-17<\/li>\n\t\t<li class=\"page_item page-item-151\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/typed-pointcut-lanugage\/\">(English) Typed Pointcut Lanugage<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-159\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/scope\/\">(English) SCoPE &#8211; Static Conditional Pointcut Evaluator for AspectJ<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-155\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/pit\/\">(English) Pit: Point-in-time Join Point Model for Aspect-Oriented Programming Languages<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-165\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/objcache\/\">(English) ObjCache: Profile-based Object Caching<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-467\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/itd-interfaces\/\">(English) ITD Interfaces<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-147\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/aspectual-haskell\/\">(English) Aspectual Haskell<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-157\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/aspectual-caml\/\">(English) Aspectual Caml (A&#8217;Caml): an AOP extension to functional language Caml<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-137\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/aspectklava\/\">(English) AspectKlava<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-167\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/aspect-sand-box\/\">(English) Aspect Sand Box<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-141\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/aop-for-implicit-conversion\/\">(English) AOP for implicit conversion<\/a> 2020-01-18<\/li>\n\t\t<li class=\"page_item page-item-127\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/modularity\/aspect-oriented-programming-languages\/a-per-type-instantiation-mechanism\/\">(English) A per-type Instantiation Mechanism for Generic Aspects<\/a> 2020-01-18<\/li>\n\t<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-2585 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/\">\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u74b0\u5883<\/a> 2026-03-10\n<ul class='children'>\n\t<li class=\"page_item page-item-2607\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/kanon\/\">Kanon: \u30c7\u30fc\u30bf\u69cb\u9020\u3092\u53ef\u8996\u5316\u3059\u308b\u30e9\u30a4\u30d6\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u74b0\u5883<\/a> 2026-03-10<\/li>\n\t<li class=\"page_item page-item-11844\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/voice-based-programming\/\">\u97f3\u58f0\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/a> 2026-02-22<\/li>\n\t<li class=\"page_item page-item-2666\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/refactoring-tools\/\">\u65b0\u8a00\u8a9e\u6a5f\u80fd\u3092\u5229\u7528\u3055\u305b\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u518d\u69cb\u7bc9\u30c4\u30fc\u30eb<\/a> 2025-08-09<\/li>\n\t<li class=\"page_item page-item-5916\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/jigsaw\/\">JIGSAW: \u8868\u73fe\u5909\u63db\u53ef\u80fd\u306a\u30d3\u30b8\u30e5\u30a2\u30eb\u30c7\u30d0\u30ac<\/a> 2023-08-03<\/li>\n\t<li class=\"page_item page-item-4383\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/codemap\/\">CodeMap: \u5927\u898f\u6a21\u30d7\u30ed\u30b0\u30e9\u30e0\u7406\u89e3\u306e\u305f\u3081\u306e\u30b0\u30e9\u30d5\u30a3\u30ab\u30eb\u8a18\u9332\u30c4\u30fc\u30eb<\/a> 2022-11-13<\/li>\n\t<li class=\"page_item page-item-3200\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/smarter-keyword-programming\/\">\u30ad\u30fc\u30ef\u30fc\u30c9\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u6539\u826f<\/a> 2020-11-14<\/li>\n\t<li class=\"page_item page-item-2615\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/dnn-completion\/\">\u6df1\u5c64\u5b66\u7fd2\u3092\u7528\u3044\u305f\u30b3\u30fc\u30c9\u88dc\u5b8c<\/a> 2020-01-30<\/li>\n\t<li class=\"page_item page-item-149\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/selene\/\">Selene\uff1a\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u63a8\u85a6\u30c4\u30fc\u30eb<\/a> 2020-01-18<\/li>\n\t<li class=\"page_item page-item-139\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/software-development-environment\/traceglasses\/\">(English) Traceglasses : A Trace-Based Debugger<\/a> 2020-01-18<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-2579 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/\">\u4eee\u60f3\u6a5f\u68b0\u30fb\u5b9f\u884c\u6642\u30b3\u30f3\u30d1\u30a4\u30eb\u30fb\u30b3\u30fc\u30c9\u751f\u6210\u30fb\u30d7\u30ed\u30b0\u30e9\u30e0\u7279\u5316<\/a> 2026-01-26\n<ul class='children'>\n\t<li class=\"page_item page-item-11657\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/ruby\/\">Ruby\u8a00\u8a9e\u51e6\u7406\u7cfb\u306e\u5805\u7262\u5316<\/a> 2026-01-25<\/li>\n\t<li class=\"page_item page-item-2611\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/baccaml\/\">\u9069\u5fdc\u7684\u30e1\u30bfJIT\u30b3\u30f3\u30d1\u30a4\u30e9\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af<\/a> 2025-10-15<\/li>\n\t<li class=\"page_item page-item-1130\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/pyrlang-a-high-performance-erlang-virtual-machine-based-on-rpython\/\">Pyrlang: RPython\u3092\u7528\u3044\u305f\u9ad8\u6027\u80fd\u4eee\u60f3\u6a5f\u68b0<\/a> 2020-01-18<\/li>\n\t<li class=\"page_item page-item-122\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/bytecode-specialization\/\">(English) BCS: BYTECODE SPECIALIZATION<\/a> 2020-01-18<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-8561 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/formalization\/\">\u5f62\u5f0f\u5316<\/a> 2025-10-14\n<ul class='children'>\n\t<li class=\"page_item page-item-2742\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/formalization\/dependently-typed-music\/\">\u4f9d\u5b58\u578b\u4ed8\u304d\u97f3\u697d<\/a> 2025-10-14<\/li>\n\t<li class=\"page_item page-item-4428\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/formalization\/monae\/\">Monae: Coq\u306e\u305f\u3081\u306e\u30e2\u30ca\u30c7\u30a3\u30c3\u30af\u30a8\u30d5\u30a7\u30af\u30c8\u3068\u7b49\u5f0f\u63a8\u8ad6<\/a> 2025-08-13<\/li>\n<\/ul>\n<\/li>\n<li class=\"page_item page-item-2589 page_item_has_children\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/shell-programming-languages\/\">\u30b7\u30a7\u30eb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e<\/a> 2021-06-09\n<ul class='children'>\n\t<li class=\"page_item page-item-2641\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/shell-programming-languages\/magritte\/\">Magritte: \u73fe\u4ee3\u7684\u30b7\u30a7\u30eb\u8a00\u8a9e<\/a> 2020-02-05<\/li>\n\t<li class=\"page_item page-item-559\"><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/shell-programming-languages\/ocommand\/\">OCommand: OCaml\u4e0a\u306e\u578b\u5b89\u5168\u306a\u30b7\u30a7\u30eb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 \u306e\u305f\u3081\u306e\u9818\u57df\u7279\u5316\u8a00\u8a9e<\/a> 2020-01-18<\/li>\n<\/ul>\n<\/li><\/ul><\/div>\r\n\r\n\r\n\r\n<p><style>\r\n.moreButton,.pseudoMoreButton {\r\n    visibility: hidden;\r\n}\r\n\/*\r\n.moreButton {\r\n    text-decoration: none;\r\n    margin-left: 2em;\r\n    display: flex;\r\n    justify-content: right;\r\n}\r\n*\/\r\n.toRight {\r\n    float: right;\r\n    margin-top: -1.5em;\r\n}\r\n.moreButton::after,.pseudoMoreButton::after {\r\n\/*\r\n    content: \"+\";\r\n    visibility: visible;\r\n    background: #314a6980;\r\n    color: #ffffff;\r\n    width: 1em;\r\n    height: 1em;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n*\/\r\n          background: #314a6980;\t\/*button color*\/\r\n          color: white;\t\t\/*text color*\/\r\n          content: \"+\";\t\t\/*the text*\/\r\n          width: 1em;\t\t\/*size of the gray box*\/\r\n          height: 1em;\r\n          display: inline-block; \/*to make width\/height effective*\/\r\n          text-align: center;    \/*place text horizontally center in the box*\/\r\n          line-height: 1em;      \/*place text vertically center in the box*\/\r\n          vertical-align: middle;\t\/*place the box vertically the center in the line *\/\r\n          visibility: visible;\r\n}\r\n<\/style> <script>\r\n\/\/ a script to hide\/show older projects\r\n\r\n\/\/ CSS that selects all li elements in the project list in all levels\r\nlet css_category_or_project_ul = '#ccchildpages-1 ul';\r\nlet css_category_or_project_li = css_category_or_project_ul + ' .page_item';\r\n\r\n\/\/ to hide and register date strings in all categories and projects\r\nfunction hide_dates() {\r\n    for (node of document.querySelectorAll(css_category_or_project_li)) {\r\n        \/\/ Each node should have this structure:\r\n        \/\/ <li class=\"page_item ...\">\r\n        \/\/   <a href=...>...project name...<\/a> \r\n        \/\/   2023-11-19\t\t\t        <-- childNodes[1]\r\n        \/\/   ...\r\n        \/\/ <\/li>\r\n        let dateNode = node.childNodes[1];\r\n\tlet date = new Date(dateNode.textContent.trim());\r\n        node.date = date;\r\n        node.removeChild(dateNode);\r\n\tnode.setAttribute(\"title\", \"Last update: \" + date.toDateString());\r\n    }\r\n}\r\n\r\n\/\/ to show only categories and projects that are updated last n days\r\nfunction show_updated_last(days) {\r\n    let date = days && (new Date() - days * 24 * 60 * 60 * 1000);\r\n    for (node of document.querySelectorAll(css_category_or_project_li)) {\r\n        if (node['date'])\r\n            node.style.display =\r\n\t    (date && date > node.date) ? 'none' : null;\r\n    }\r\n    updateVisibilityOfMore();\r\n}\r\n\r\n\/\/ to count the number of elements in the list that satisfy the predicate\r\nfunction countif(list, predicate)  {\r\n    return list.reduce((total, item) => total + (predicate(item) ? 1 : 0),\r\n                       0);\r\n}\r\n\r\nfunction directListElements(ulElement) {\r\n    return [...ulElement.querySelectorAll(\"li\")].filter(liElement => \r\n\tliElement.parentElement == ulElement);\r\n}\r\n\r\n\/\/ to show all sibling li elements of the given element\r\nfunction showSiblings(element) {\r\n    let parent = element.parentElement;\r\n    for (liElement of parent.querySelectorAll(\"li\"))\r\n\tif (liElement.parentElement.parentElement == parent)\r\n\t    liElement.style.display=null;\r\n}\r\n\r\n\/\/ to show all list elements in the list where clicked button is placed\r\nfunction handleMore(event) {\r\n    showSiblings(event.target);\r\n    updateVisibilityOfMore();\r\n}\r\n\r\n\/\/ to add \"more...\" element at the end of the given <ul> element\r\nfunction addMoreElement(ulElement) {\r\n    if (!ulElement['moreButton']) {\r\n\t\/\/ [...c] converts HTMLcollection c to an array\r\n\t\/\/let children = [...x.querySelector('ul').children];\r\n\tlet children = [...ulElement.children];\r\n\tlet moreElement = document.createElement('a');\r\n\tmoreElement.textContent = 'more...';\r\n\tmoreElement.className = 'moreButton toRight';\r\n\tmoreElement.addEventListener(\"click\", handleMore);\r\n\tulElement.parentElement.insertBefore(moreElement, ulElement.nextSibling);\r\n\tulElement['moreButton'] = moreElement;\r\n    }\r\n}\r\n\r\n\/\/ to add \"more...\" element into the category list and each project list\r\nfunction addMoreElementAll() {\r\n    for (ulElement of document.querySelectorAll(css_category_or_project_ul))\r\n\taddMoreElement(ulElement);\r\n}\r\n\r\n\/\/ to update the visilibity of \"more...\" buttons\r\nfunction updateVisibilityOfMore() {\r\n    for (ulElement of document.querySelectorAll(css_category_or_project_ul)) {\r\n\tlet liElements = directListElements(ulElement);\r\n\tulElement['moreButton'].style.display =\r\n\t    countif(liElements, e => e.style.display == \"none\") > 0 ?\r\n\t    null : \"none\";\r\n    }\r\n}\r\n\r\n\/\/ to count the number of the hidden li elements in the given ulElement\r\nfunction num_hidden_children(ulElement) {\r\n    return countif([...ulElement.querySelectorAll(\":scope > li\")],\r\n\t\t   node => node.style.display == \"none\")\r\n}\r\nhide_dates();\r\naddMoreElementAll();\r\nshow_updated_last(365*3);\r\n\r\n<\/script><a>Show all<\/a><\/p>\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n<h2 class=\"wp-block-heading\">\u95a2\u9023\u60c5\u5831<\/h2>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><a href=\"https:\/\/prg.is.titech.ac.jp\/awards\/\"><\/a><a href=\"https:\/\/prg.is.titech.ac.jp\/awards\/\">\u53d7\u8cde<\/a><\/li>\r\n<li><a href=\"https:\/\/prg.is.titech.ac.jp\/dissertations\/\" data-type=\"page\" data-id=\"4518\">\u5b66\u4f4d\u8ad6\u6587<\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Only recently updated projects are shown. Press button to see the full projects. Show all \u95a2\u9023\u60c5\u5831 \u53d7\u8cde \u5b66\u4f4d\u8ad6\u6587 &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry","radius"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":787,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/6\/revisions"}],"predecessor-version":[{"id":12222,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/6\/revisions\/12222"}],"wp:attachment":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/media?parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}