https://builderscon.io/tokyo/2019/session/e6ed1194-9a40-4a8c-92fb-b60f39cd18dd
![コンパイラをつくってみよう (DQNEO) - builderscon tokyo 2019](https://cdn-ak-scissors.b.st-hatena.com/image/square/9d0b810327cde09415b2d49aec686590cfbea311/height=288;version=1;width=512/https%3A%2F%2Fi.ytimg.com%2Fvi%2Fd0mYwTj2O1M%2Fhqdefault.jpg)
コンパイラ、インタプリタ、外部/内部DSLなどの言語の実装の最適化、理論などのAdventCalendarです。 学術寄りな内容が多いのかなと思ってカテゴリを学術にしましたが特に縛りは設けません。 実装してみたでも論文紹介でも実装解説でもなんでもどうぞ このカレンダーに参加しそうな人が集まる場所 プログラミング言語処理系が好きな人の集まり 過去の様子 言語実装 Advent Calendar 2015 - Qiita 言語実装 Advent Calendar 2016 - Qiita 言語実装 Advent Calendar 2017 - Qiita 言語実装 Advent Calendar 2018 - Qiita 言語実装 Advent Calendar 2019 - Qiita 言語実装 Advent Calendar 2020 - Qiita 言語実装 Advent Calenda
タイムラインに流れていた『もう発注側企業に要件定義能力はないので、要件定義を専門でやる技術者(Requirement Engineer)が世界でも日本でも出てきている』という話に関する極めて個人的な雑感。あるいは記憶のダンプ。 b.hatena.ne.jp 要件定義を専門でやる技術者(Requirement Engineer)の話はいつか来た道 要件定義を専門でやる技術者という話は新しい話ではなく、ゼロ年代後半から議論がされていたものである。 ゼロ年代後半というと、SIerを中心にわりと適切なプロジェクトマネジメント方法論が普及しはじめて、「要求された通りのシステムは開発できるようになってきた」という時代だ。 一方で「システムは開発できるが、要件定義がゴミだと、完成するシステムもゴミ」という問題が残っていて、要件定義の高度化や専門家育成の議論があったのだ。 要求開発~価値ある要求を導き出す
言語実装 Advent Calendar 2022の6日目です。 本記事ではLL(1)の素晴らしさと難しさについてDesk言語の開発の体験から語ります。 LL(1)とは LL(1)についてご存知でしょうか。 「LL(1)言語」「LL(1)文法」「LL(1)パーサ」でそれぞれ定義がありますが、一番分かりやすい「LL(1)パーサ」をざっくりいうと、ソースコードの頭から順番にトークン(ifや1や{など)を見ていきながらASTを構築するための情報を集める[1]パーサのうち、現在見ているトークンの種類を確認するだけで(それ以上の先読みなしに)ASTのノードの種類(IfやIntegerLiteralやBlock)を決定できるもののことです。 そしてLL(1)パーサでパースできるのがLL(1)文法であり、LL(1)言語であるというのがざっくりした説明です[2]。 次は、LL(1)パーサ(言語)のメリット
C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです。 AddressSanitizerはGCC 4.8以降かLLVM 3.1以降で使うことができます。 コンパイル時にオプションをつけるだけでメモリリークを検出してくれます。(若干実行時間が長くなります) 以下のメモリリークのあるプログラム leak.cpp を例に使い方を説明します。 int main() { int *a = new int[10]; } newで作った動的配列をdeleteしていないのでメモリリークになります。 g++ -fsanitize=address -fno-omit-frame-pointer -g l
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く