Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2024年度SecHack365 アシスタントを囲む会
Search
HiroyukiYagihashi
August 28, 2024
Technology
0
29
2024年度SecHack365 アシスタントを囲む会
HiroyukiYagihashi
August 28, 2024
Tweet
Share
More Decks by HiroyukiYagihashi
See All by HiroyukiYagihashi
LLMの活用方法と課題
yagipy
0
110
What is Soft Memory Limit?
yagipy
1
560
Building markdown editor using Rust’s parser
yagipy
0
2.3k
OSSに貢献した話と社内での取り組みについて
yagipy
1
350
簡易的な推薦機能を実装する
yagipy
0
110
GitHub oneliner command
yagipy
0
75
Other Decks in Technology
See All in Technology
Taming you application's environments
salaboy
0
180
AIチャットボット開発への生成AI活用
ryomrt
0
170
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
The Rise of LLMOps
asei
5
1.2k
Platform Engineering for Software Developers and Architects
syntasso
1
510
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
190
いざ、BSC討伐の旅
nikinusu
2
780
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
160
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
25
5k
How to Ace a Technical Interview
jacobian
276
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
YesSQL, Process and Tooling at Scale
rocio
169
14k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Side Projects
sachag
452
42k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Transcript
2024年度SecHack 36 5 アシスタントを囲む会 八木 橋拓之 1
八木 橋 拓之 / yagipy • 株式会社サイバーエージェント AI事業本部 アドテクDiv ProFit-X
ソフトウェアエンジニア • 広告配信システム(SSP)の開発 • OSS開発 • maintidx (Owner) • ソースコードの保守性を計測する静的解析ツール • Althea (Owner) • 所有権付き参照カウントを備えたプログラミング 言 語 • golangci-lint (Maintainer) • Goの静的解析ツールをまとめて実 行 するツール • etc … @yagipy @yagipy_ 2
1 . 自身 の成果物について紹介 2 .7 月 時点のスライド 3 .開発の進め
方 4 .重要視していた観点 5 .おまけ: プログラミング 言 語独 自 の有 用 性の出し 方 3
自身 の成果物について紹介 4
自身 の成果物について紹介 • https://sechack 3 65 .nict.go.jp/achievement/ 2022 / 5
使 用 ライブラリ • https://github.com/yagipy/althea • inkwell • llvm-sys(LLVM C
APIのbinding)のラッパー • structopt • オプションのハンドリング • codespan/codespan-reporting • エラーレポート 6
7 月 時点のスライド
7 月 時点のスライド オフライン限定 8
開発の進め 方
開発初期 • Kaleidoscope: Implementing a Language with LLVM • https://llvm.org/docs/tutorial/
• 10 日 くらいでできる!プログラミング 言 語 自 作 入門 • https://essen.osask.jp/?a 2 1 _txt 0 1 • 低レイヤを知りたい 人 のためのCコンパイラ作成 入門 • https://www.sigbus.info/compilerbook 10
ベースの実装が完成した後 以下 手 順で作成 1 . Altheaに欲しい機能をC 言 語で実装 2
. 1で実装したソースコードからLLVM IRを出 力 (clangを使 用 ) 3 . 2で出 力 されたLLVM IRをLLVM Language Reference Manualを元に読み解 きつつAltheaに実装( 言 語仕様はここで考える) 後半はLLVM IRを直接書いて実装 11
重要視していた観点
重要視していた観点 • 課題が明確かつ重要か • 解決しようとしている課題が具体的に再現できているか( 手 元で再現できるコードなどがあるとベスト) • 課題が解決されることによって誰がどの程度有益か •
競合はあるか(課題の解決策も含める) • ある場合 • 競合と 比 較して優れている点は何か • 優れている点はどういったユースケースで価値を発揮するのか • ない場合 • なぜないのか(競合調査が 足 りてないケースが多い) • 別のより良い解決策はないか(解決策が妥当か) • 川合ゼミの場合 • プログラミング 言 語でやる必要があるか(ライブラリなどで解決できないか) 13
プログラミング 言 語独 自 の 有 用 性の出し 方
プログラミング 言 語独 自 の有 用 性の出し 方 • 主要なプログラミング
言 語が提供している機能に着 目 する • 自 動メモリ管理(GCや所有権など) • グリーンスレッドやスレッド間通信 • ランタイム(スレッドスケジューリングなど) • 型システム • エラーレポート • プログラミング 言 語の構造に着 目 する • トークナイザーとパーサーは独 自色 を出しにくい&機能の差異を作りにくい • AST以後の処理は独 自色 を出しやすい 15
ありがとうございました 16
参考資料 • https://sechack 3 65 .nict.go.jp/achievement/ 2022 / • https://blog.yagipy.me/althea
• https://blog.yagipy.me/sechack 3 65 -diary • https://github.com/yagipy/althea 17