<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[lewisacidさんのフィード]]></title><description><![CDATA[Zennのlewisacidさん（@acd1034）のRSSフィードです]]></description><link>https://zenn.dev/acd1034</link><image><url>https://storage.googleapis.com/zenn-user-upload/avatar/0db8211ed3.jpeg</url><title>lewisacidさんのフィード</title><link>https://zenn.dev/acd1034</link></image><generator>zenn.dev</generator><lastBuildDate>Sun, 19 Apr 2026 12:04:02 GMT</lastBuildDate><atom:link href="https://zenn.dev/acd1034/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[JavaScript エンジンの高速化]]></title><description><![CDATA[JavaScript をはじめとする動的言語の処理系における最適化について紹介します。主に 🔗Speculation in JavaScriptCore | WebKit を参考にしています。

 はじめに

JavaScript, Ruby, Python をはじめとする動的言語は至るところで利用されています。近年では通常のアプリに見える Web アプリケーションも多く、VSCode, Slack や Notion といったアプリが Web アプリとして実装されています。
一方、動的言語は多くの場合、型を静的に決定することができないことから、その高速化にはネイティブコード生成するコンパ...]]></description><link>https://zenn.dev/acd1034/articles/240726-accelerating-javascript-engine</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/240726-accelerating-javascript-engine</guid><pubDate>Sat, 10 Aug 2024 08:58:07 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--y4MBCsQK--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:JavaScript%2520%25E3%2582%25A8%25E3%2583%25B3%25E3%2582%25B8%25E3%2583%25B3%25E3%2581%25AE%25E9%25AB%2598%25E9%2580%259F%25E5%258C%2596%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[MLIR がもたらす新たな中間表現の可能性]]></title><description><![CDATA[
 はじめに
半導体の微細化が鈍化し、ハードウェアによる高速化が困難になっている現状において、ソフトウェアによる計算の高速化が喫緊の課題となっています。この状況において、特定のドメインの問題を解くことに最適化された言語であるドメイン固有言語と、そのコンパイラであるドメイン固有コンパイラの活用が望まれています。
ドメイン固有コンパイラの構築の際には、開発を容易にするために、既存のコンパイラ基盤であるLLVMを活用することが考えられます。しかし、LLVM はドメイン固有コンパイラの構築にはあまり向きません。この理由は、LLVM の成功と表裏一体の関係にあります。
LLVM が成功した理由は、...]]></description><link>https://zenn.dev/acd1034/articles/230423-mlir3vdt</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/230423-mlir3vdt</guid><pubDate>Mon, 24 Apr 2023 13:37:14 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--L6Ery-aL--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:MLIR%2520%25E3%2581%258C%25E3%2582%2582%25E3%2581%259F%25E3%2582%2589%25E3%2581%2599%25E6%2596%25B0%25E3%2581%259F%25E3%2581%25AA%25E4%25B8%25AD%25E9%2596%2593%25E8%25A1%25A8%25E7%258F%25BE%25E3%2581%25AE%25E5%258F%25AF%25E8%2583%25BD%25E6%2580%25A7%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[深層学習コンパイラスタックと最適化]]></title><description><![CDATA[

概要: 深層学習コンパイラのサーベイ論文 The Deep Learning Compiler: A Comprehensive Survey を基に、深層学習コンパイラの典型的なコンパイラスタックと最適化について説明しています


 はじめに
近年深層学習の目覚ましい進歩が注目を集めています。例えば ChatGPT をはじめとする大規模言語モデルの登場が社会面に大きな影響を与えたことは、記憶に新しいかと思います。
その背後で技術の進展を支えているのが、計算機における計算速度の向上です。深層学習ワークロードは、膨大な計算を必要とします。半導体の微細化がほぼ限界に達し、ムーアの法則の終...]]></description><link>https://zenn.dev/acd1034/articles/230325-dl-compiler-overview</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/230325-dl-compiler-overview</guid><pubDate>Mon, 24 Apr 2023 13:18:31 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--naRd7S2I--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E6%25B7%25B1%25E5%25B1%25A4%25E5%25AD%25A6%25E7%25BF%2592%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2591%25E3%2582%25A4%25E3%2583%25A9%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%2583%25E3%2582%25AF%25E3%2581%25A8%25E6%259C%2580%25E9%2581%25A9%25E5%258C%2596%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[std::optional のモナド的操作]]></title><description><![CDATA[!
この記事は C++ Advent Calendar 2022 の 3 日目の記事です。
« 2 日目 Private namespace idiom は合法なのか
» 4 日目 C++20 のイテレータ事情



概要: 本記事では C++23 で std::optional に導入された、モナド的操作の機能と使用例を紹介しています。さらに他の言語との比較から、新たなエラー伝播の仕組みについても言及しています


 はじめに
メンバ関数の新しい書き方、あるいは Deducing this において、明示的オブジェクトパラメタと std::forward_like を用いることで、メン...]]></description><link>https://zenn.dev/acd1034/articles/221118-monadic-operation-for-optional</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/221118-monadic-operation-for-optional</guid><pubDate>Fri, 02 Dec 2022 14:00:16 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--DjkBx0Qp--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:std%253A%253Aoptional%2520%25E3%2581%25AE%25E3%2583%25A2%25E3%2583%258A%25E3%2583%2589%25E7%259A%2584%25E6%2593%258D%25E4%25BD%259C%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[メンバ関数の新しい書き方、あるいは Deducing this]]></title><description><![CDATA[!
この記事は C++ Advent Calendar 2022 の 1 日目の記事です。
» 2 日目 Private namespace idiom は合法なのか



概要: C++23 でクラスのメンバ関数の書き方が拡張された結果、明示的オブジェクトパラメタを使用することができるようになりました。本記事ではその機能の提案文書 P0847R7 Deducing this の内容と、新たな機能の使い方について紹介しています


 はじめに
2022 年も年の瀬を迎え、C++23 の発行があと 1 年に迫ってきました。2022 年 11 月の Kona 会議は無事終了し、順調に進めば ...]]></description><link>https://zenn.dev/acd1034/articles/221117-deducing-this</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/221117-deducing-this</guid><pubDate>Wed, 30 Nov 2022 08:27:50 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--JfDzekOj--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%25A1%25E3%2583%25B3%25E3%2583%2590%25E9%2596%25A2%25E6%2595%25B0%25E3%2581%25AE%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E6%259B%25B8%25E3%2581%258D%25E6%2596%25B9%25E3%2580%2581%25E3%2581%2582%25E3%2582%258B%25E3%2581%2584%25E3%2581%25AF%2520Deducing%2520this%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[なぜ ranges::accumulate は難しいのか]]></title><description><![CDATA[

概要: 本稿では accumulate の型制約の妥当性について、STL におけるコンセプトの設計指針を基に考察しています


 はじめに
C++20 で範囲ライブラリが導入されたことで、リスト操作が容易に行えるようになりました。個人的に 3 大リスト操作を挙げるとするならば、filter、map (あるいは transform)、fold (あるいは accumulate) が挙がるのではないかと思います。その中で ranges::accumulate だけは C++20 入りを果たしませんでした。
その理由は、単に時間が足りなかったからだとされています[1]。しかし、それは議論す...]]></description><link>https://zenn.dev/acd1034/articles/221006-why-ranges-accumulate-is-difficult</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/221006-why-ranges-accumulate-is-difficult</guid><pubDate>Thu, 27 Oct 2022 11:07:48 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--8w1iAThb--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2581%25AA%25E3%2581%259C%2520ranges%253A%253Aaccumulate%2520%25E3%2581%25AF%25E9%259B%25A3%25E3%2581%2597%25E3%2581%2584%25E3%2581%25AE%25E3%2581%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[view の書き方を一歩ずつ]]></title><description><![CDATA[
概要: 本記事ではインクリメンタルに view の書き方を説明しています。また具体例として enumerate_view の実装例を紹介しています。


 はじめに

C++20 が策定されてから早くも 3 年が経過しようとしています。C++20 で影響の大きかった機能の 1 つに range が挙げられるのではないかと思います。std::views::filter や std::views::transform といった range adaptor が導入されたことで、新たにメモリ確保しなくても range に操作を加えた range を作れるようになり、大変便利になりました。
fo...]]></description><link>https://zenn.dev/acd1034/articles/220916-how-to-write-views</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/220916-how-to-write-views</guid><pubDate>Thu, 22 Sep 2022 09:40:32 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--it4jgGg---/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:view%2520%25E3%2581%25AE%25E6%259B%25B8%25E3%2581%258D%25E6%2596%25B9%25E3%2582%2592%25E4%25B8%2580%25E6%25AD%25A9%25E3%2581%259A%25E3%2581%25A4%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item><item><title><![CDATA[`__perfect_forward` の仕組みと使い方]]></title><description><![CDATA[

この記事は C++ Advent Calendar 2021 の2日目の記事です。


 概要

libc++ の __perfect_forward の仕組みと使い方について調べた。

__perfect_forward は perfect forwarding call wrapper を実現する基底クラスである。
perfect forwarding call wrapper は自身の const・reference 修飾を完全転送する call wrapper である。


 動機
標準ライブラリの関数オブジェクトを返す関数をよく使いますか? 例えば std::not_fn、...]]></description><link>https://zenn.dev/acd1034/articles/509b011bdf9917</link><guid isPermaLink="true">https://zenn.dev/acd1034/articles/509b011bdf9917</guid><pubDate>Fri, 26 Nov 2021 11:50:35 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Iqqd0PY_--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%2560__perfect_forward%2560%2520%25E3%2581%25AE%25E4%25BB%2595%25E7%25B5%2584%25E3%2581%25BF%25E3%2581%25A8%25E4%25BD%25BF%25E3%2581%2584%25E6%2596%25B9%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:lewisacid%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzBkYjgyMTFlZDMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>lewisacid</dc:creator></item></channel></rss>