並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 854件

新着順 人気順

C++の検索結果41 - 80 件 / 854件

  • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

    こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

      2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
    • 表紙 - 本物のC

      このサイトは「本物の C 言語」について学習する機会の提供を目的としています。 「本物の」とはつまり、 標準規格(仕様)が C 言語をどういうものとして定めているか C プログラムが実際に CPU をどう動かすか という二つの意味合いに於いてです。 どうも巷間にはその辺りを気にせず何となくで書かれた資料が多い様なので、このサイトにより少しでも世界が最適化される事を期待します。 権利について 当然ですがこのサイト全体は著作権法により保護されています。法と良心に則って御利用下さい。 連絡はcontact<アット>real-c.infoまで。

      • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

        はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 本記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニアの仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基本は温かい目で見

          モダンプログラマになれない組込みプログラマの苦悩 - Qiita
        • 60歳のC++おじさんを派遣で雇ったがなんでも作れて最強すぎる→各地のベテラン技術者さんの話が興味深い

          おにぎり @suiseigan それぐらいのお年でc++ということは、windowsの生apiをガンガンたたくプログラムできたえたんだろうなぁ、、、 twitter.com/shatiku_master… 2023-05-20 08:17:48

            60歳のC++おじさんを派遣で雇ったがなんでも作れて最強すぎる→各地のベテラン技術者さんの話が興味深い
          • 2で割ることと3で割ること - Qiita

            この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

              2で割ることと3で割ること - Qiita
            • FFT(高速フーリエ変換)を完全に理解する話 - Qiita

              となります。 この $C_i$ を、$0\leq i\leq 2N$ を満たすすべての $i$ について求めるのが今回の目標です。 それぞれ愚直に求めると、$f,g$ の全項を組み合わせて参照することになるので、 $O(N^2)$ です。これをどうにかして高速化します。 多項式補間 愚直な乗算は難しそうなので、$C_i$ の値を、多項式補間を用いて算出することを考えます。 多項式補間とは、多項式の変数に実際にいくつかの値を代入し、多項式を計算した値から、多項式の係数を決定する手法です。 たとえば、$f(x)=ax+b$ という $1$ 次関数があるとします。 $a$ と $b$ の値は分かりませんが、$f(3)=5,f(7)=-3$ がわかっているものとします。 実際に $3,7$ を代入してみると、 $3a+b=5$ $7a+b=-3$ と、連立方程式が立ち、$a,b$ の値が求められま

                FFT(高速フーリエ変換)を完全に理解する話 - Qiita
              • sight 次世代を生み出すテクノロジーの視点 - Si-ght.jpにようこそ。

                  sight 次世代を生み出すテクノロジーの視点 - Si-ght.jpにようこそ。
                • オブジェクト指向宗教史

                  OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

                    オブジェクト指向宗教史
                  • free-programming-books/books/free-programming-books-ja.md at main · EbookFoundation/free-programming-books

                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                      free-programming-books/books/free-programming-books-ja.md at main · EbookFoundation/free-programming-books
                    • プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話

                      プログラム解析入門 もしくはC/C++を安全に書くのが難しすぎる話 Last updated: Jul 30, 2022 Kinuko Yasuda <@kinu>

                        プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話
                      • 高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録

                        高速逆平方根とは? C言語のコード 検証 アルゴリズムの要点 [1] 逆平方根の計算を対数・指数の計算に置き換える [2] 浮動小数点型の内部表現を利用した対数・指数の近似計算 [2.1] 対数の近似 [2.2] σの最適値 [2.3] 整数型での解釈 [2.4] 逆平方根の計算とマジックナンバー0x5F3759DF [3] ニュートン法による収束で精度アップ 感想 高速逆平方根とは? 高速逆平方根(fast inverse square root)とは、平方根の逆数 を高速に計算するアルゴリズムです。平方根の逆数は逆平方根とも呼ばれます。逆平方根はベクトルの正規化などに用いられるので、これを高速に計算できるアルゴリズムには大きなご利益があります。 参照: Fast inverse square root - Wikipedia C言語のコード 高速逆平方根の関数を示します。0x5F375

                          高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録
                        • 継承はなんでダメ? - まめめも

                          「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょうか。 インターネットで見かけた「継承はダメ」という主張をいくつか眺めて、友人と議論しつつ、考えてみました。 「コードが読みにくくなる」 継承があると、メソッド呼び出しが実際にどのメソッド定義を呼び出すのか字面でわからない。 デバッガを使って、親クラスのメソッドに飛んだり、子クラスに飛んだりするのを追いかけないと行けない。 つらい。という主張。 めっちゃわかる。わかるんですが、これは「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きいような。 たとえば継承の代わりに高階関数を使うと、関数呼び出しがどのクロージャに飛ぶか字面でわからなくなる。 ひどいとコールバック地獄になって何が何やらになります。 継承がことさらにまずい理由を想像すると、すべてのメソッド呼び出しがポリモーフィック

                            継承はなんでダメ? - まめめも
                          • Mojoは「C言語のように速いPython」なのか - k0kubun's blog

                            LLVMやSwiftを作ったChris LattnerがCEOをやっている会社が、Pythonの使用感とC言語並の性能を併せ持つ言語としてMojoをアナウンスした。 まだ手元で試せる状態でリリースされてはいないが、最大35000倍Pythonより速いという。 Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80— Modular (@Modular_AI) May

                              Mojoは「C言語のように速いPython」なのか - k0kubun's blog
                            • 違法な職務質問をされたので東京都を訴えた裁判の控訴審は棄却、理由は突然に

                              職務質問裁判の控訴は棄却された。判決文は以下から読むことができる。 https://github.com/EzoeRyou/calling-110-is-suspicious 2年前の7月3日、職務質問を受けた。 警察官に職務質問をされた話し この職務質問は明らかに違法であると感じたので、弁護士に相談の上、東京都に対して国賠訴訟を起こした。警察官というのは各都道府県の下に位置する行政組織なので、警察を訴えるというのは、その警察の所属する都道府県を訴えるということになる。 一審判決は請求棄却。理由としては、「最初の10分間は不審事由がないが、刃物などの危険物を入れることができるリュックを背負っていたから声をかけ10分間その場にとどめて話をするのは違法ではない。このとき110番通報を要請したことは不審事由にあたりその後の1時間20分の職務質問は不審事由が存在するために合法である」というわけのわ

                              • ウワサのBlawnを触ってみた - Qiita

                                program = block block = lines lines = line | lines line line = line_content EOF | line_content END | definition | import import = "import" STRING_LITERAL EOL line_content = expression definition = function_definition | class_definition | c_type_definition | global_definition | c_function_declaration function_definition = "function" identifier arguments EOL block return_value EOL | "function" ident

                                  ウワサのBlawnを触ってみた - Qiita
                                • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

                                  こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 本日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

                                    Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
                                  • ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?

                                    回答 (11件中の1件目) 追記 再帰のルールをよく理解してませんでした。 分かりやすい例として載せておきます。 [code]#include template struct print { print() { std::cout << N << std::endl; } }; template struct Print { Print() { Print(); print(); } }; template<> struct Print<0> { Print() {} ...

                                      ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?
                                    • 高校生のなりたい職業1位に「エンジニア・プログラマー」 学研調査 男子・高1女子に人気

                                      高校生のなりたい職業1位は「エンジニア・プログラマー」――こんな調査結果を、学研教育総合研究所が12月24日に発表した。性別・学年別では男子全学年と、1年生女子の部門で1位を獲得した。 男女総合ランキングでは「エンジニア・プログラマー(機械・技術・IT系)」が6.7%で1位を獲得。2位が「公務員」(6.0%)、3位が「会社員」(4.5%)、4位が同率で「学校の教師・先生」「看護師」(2.7%)となった。 エンジニア・プログラマーは男子総合ランキングで1位(11.3%)を獲得した一方、女子総合ランキングでは12位(2.0%)と男女で人気に差がついた。 女子学年別ランキングでは、2年生・3年生の部門で得票はなかったものの、1年生の部門で1位(6.0%)を獲得。学研教育総合研究所は、文部科学省が推し進める教育のデジタル化施策「GIGAスクール構想」や、新学習指導要領による「情報I」の新設などの影

                                        高校生のなりたい職業1位に「エンジニア・プログラマー」 学研調査 男子・高1女子に人気
                                      • どのウェブフレームワークが一番高速に動作するのかが一目で分かる「Web Framework Benchmarks」レビュー

                                        普段何気なく目にしているウェブサイトも、裏ではさまざまなフレームワークを活用しています。「Web Framework Benchmarks」はそうしたフレームワークたちがアクセスをさばくときの処理速度を計測してベンチマークにまとめたもので、2013年に公開されて以降、年々アップデートが積み重ねられて多種多様なフレームワークの実力を一目で確認できるようになっています。 TechEmpower Framework Benchmarks https://www.techempower.com/benchmarks/ 上記のURLへアクセスすると、2020年5月28日にアップデートされた「Round 19」の内容が表示されます。 こんな感じでテスト結果がランキング形式で表示されます。さまざまなテスト結果が掲載されていますが、最初に表示される「Fortunes」はデータベースを読み取ってHTMLを生

                                          どのウェブフレームワークが一番高速に動作するのかが一目で分かる「Web Framework Benchmarks」レビュー
                                        • カルマンフィルターが自動運転の自己位置推定で使われるまで - TIER IV Tech Blog

                                          はじめまして、ティアフォー技術本部 Planning / Controlチームで開発を行っている堀部と申します。 今回は状態推定の王道技術「カルマンフィルター」が実際に自動運転で用いられるまでの道のりやノウハウなどを書いていこうと思います。 みなさんはカルマンフィルターという言葉を聞いたことがありますでしょうか。 カルマンフィルターとは「状態推定」と呼ばれる技術の一種であり、自動運転においては現在の走行状態、例えば車速や自分の位置を知るために用いられます。 非常に有名な手法で、簡単に使えて性能も高く、状態推定と言えばまずカルマンフィルターと言われるほど不動の地位を確立しており、幅広いアプリケーションで利用されています。 使い勝手に定評のあるカルマンフィルターですが、実際に自動運転のシステムとして実用レベルで動かすためには多くの地道な作業が必要になります。 この記事では、カルマンフィルターが

                                            カルマンフィルターが自動運転の自己位置推定で使われるまで - TIER IV Tech Blog
                                          • プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena

                                            Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonにMicrosoftはかなり力をいれている。象徴的なのが、Pythonのオリジナル開発者の入社 C/C++ Windows上でのC/C++コンパイラではMS C/C++が圧倒的シェアであるし、C++の標準化団体にMicrosoftはGold Memberとして参加している。 https://isocpp.org/about Java 4位のJavaに関してもかなりリソースは割いているわけですが、全体の影響度としてそこまで大きくはないですね。 昨日のブログにも書いたようにOpenJDKビルドを出してい

                                              プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena
                                            • Big Sky :: sudo の特権昇格バグはなぜ起こったのか

                                              « Microsoft Word を Markdown に変換するコマンド「docx2md」を作った。 | Main | VimConf 2019 を終えて » Linux の sudo に root 権限を奪取できるバグが見つかった。 Linuxの「sudo」コマンドにroot権限奪取の脆弱性。ユーザーID処理のバグで制限無効化 - Engadget 日本版 この脆弱性は、sudoコマンドのユーザーIDに-1もしくは4294967295を指定すると、誤って0(ゼロ)と認識して処理してしまうというもの。0(ゼロ)はrootのユーザーIDであるため、攻撃者は完全なrootとしてコマンドを実行できることになります。 https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/ 既に Ubuntu 等にはパッチが配布され始めているらしい

                                                Big Sky :: sudo の特権昇格バグはなぜ起こったのか
                                              • printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita

                                                def check(n) s = "*"*n f = open("test.cpp","w") f.puts <<EOS #include <cstdio> int main(){ (#{s}printf)("Hello World\\n"); } EOS f.close() return system("clang++ test.cpp") end check(ARGV[0].to_i) $ ruby check.rb 10000 clang: error: unable to execute command: Illegal instruction: 4 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 10.0.1 (clang

                                                  printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
                                                • Linuxカーネルで学ぶC言語のマクロ - 覚書

                                                  はじめに 本記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。 #define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) 注目すべきはマクロの定義全体を囲んでいるdo { ... } while (0)という表記です。初見の人には何のことかわからないと思います。考えられる最も単純な定義から遡って、なぜこ

                                                    Linuxカーネルで学ぶC言語のマクロ - 覚書
                                                  • githubで最もやべー関数を発掘する - Qiita

                                                    はじめに 先日、職場で「自分が 改修したor 書いちゃった いちばんやべー関数」ネタで盛り上がりました。 みんないろいろ話してくれましたが、やっぱり僕の書いた「コマンドパターンのメインループ関数(1500行)」の圧勝でした。 なんであんなコード書いたんだろ。 そこで、今日は僕の傷ついたプライド癒すべくgithubから「世界でいちばんやべー関数」を発掘します。 つまり、「俺が書いた関数よりやべー関数に会いに行く」 結論 マジでやべー関数は次の2つ 「opencvリポジトリのcv::agast_cornerScore<AgastFeatureDetector::AGAST_7_12s>関数」(複雑度1868) 「SuiteCRMリポジトリのOpenTag関数」(複雑度1509) 言語毎の傾向に着目すると... javascriptにはやべー関数が多い python/java/swift/rub

                                                      githubで最もやべー関数を発掘する - Qiita
                                                    • 個人開発激安 GCP (にしたい)

                                                      とりあえず GCP で軽くサーバーとデータベース立ててみたいっつって脳死で使ってたら1日で 1800 円いって焦った。慌ててチャットサポートに聞いたらいろいろ教えてくれて安心したけど、もうちょっと調べてみためも。自分が使いそうなものしか書いてないよ。 Google Cloud Calculator めっちゃ便利。 App Engine TLDR これを app.yaml に書いておけば一番安上がり env Standard environment と Flexible environment があって、無料枠があるのは Standard だけ。他にも Flexible だと想定外の請求が来たりするらしい。なので Standard を指定しておく instance_class サーバのインスタンスの種類。F1 が一番しょぼいスペックのサーバで F1, F2 とかの "F" 系なら一日 28

                                                        個人開発激安 GCP (にしたい)
                                                      • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

                                                        ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers

                                                          ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
                                                        • おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary

                                                          みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその

                                                            おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
                                                          • 良いソフトウェアとコードレビュー / Good software and code review

                                                            Scala + Caliban で作るGraphQL バックエンド / Making GraphQL Backend with Scala + Caliban

                                                              良いソフトウェアとコードレビュー / Good software and code review
                                                            • アルゴリズム本、書きました! - Qiita

                                                              最後に、17 章で PとNPに関する話題を解説し、世の中には「効率的に解くアルゴリズムを設計することができそうにない難問」が多数あることを見ます。18 章で、これらの難問に取り組むための方法論をまとめます。 競プロをやっている方向け 扱っている題材の難易度については、こんな感じのイメージです! チーター本 < 本書 = 螺旋本 < 蟻本 難易度が近い螺旋本は、スタンスが異なる部分もありますので、よい形で共存できたら、という想いです。 螺旋本と比べると、「動的計画法」「貪欲法」「二分探索法」などの設計技法に関する話題をより重視しています 螺旋本は「ライブラリを揃えていく」という思想なので、設計技法よりもライブラリになるものを重視する立場です 本書では、紙面の都合で「計算幾何学」と「整数論」には触れられませんでしたが、これらは螺旋本には載っています 2-2. 本書の対象読者 本書は、「アルゴリ

                                                                アルゴリズム本、書きました! - Qiita
                                                              • Go コンパイラのコードを読んでみよう - kosui

                                                                はじめに 本記事は、 DeNA Advent Calendar 2020 の 11 日目の記事です。 突然ですが、「コンパイラのコードを読んでみよう」なんて言われても、「どうせ巨大で難解で複雑なロジックを理解しないと読めないんでしょ?」と思いませんか。 コンパイラの構造を理解しようとしても聞いたことのないような専門用語がずらりと並び、コードを読もうとしたらそれらをすべて完全に理解してないと一行も理解できないんじゃないか...。Go のコンパイラ gc のソースコードを読むまでは、私もそう思っていました。 しかし、あまりにも暇な休日のある日、思い立って gc のコードを読んでみました。すると、「コンパイル」という難解な響きの処理も、一つひとつを小さなタスクに分解することで、少しずつ読み進めることができると分かったのです! 何よりも感動したことは、 gc そのものが全て Go で書かれていて、

                                                                  Go コンパイラのコードを読んでみよう - kosui
                                                                • Rust を ChatGPT だけで勉強する【実験記録】

                                                                  C++ 経験者が、ChatGPT との対話だけで Rust を学んでみる実験の記録です。 期待した回答が得られなかった際には、質問文を変えたり、回答を再生成したりしています。 AI の回答には不正確な情報が含まれている可能性もあります。不正確な技術情報が拡散しないよう、AI の回答は画像で掲載しています。

                                                                    Rust を ChatGPT だけで勉強する【実験記録】
                                                                  • Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita

                                                                    Go言語コンパイラをスクラッチから書いてセルフホストを達成しました。 本家Goコンパイラの実装はほとんど見ずに、ほぼ 8cc というCコンパイラから学んだ知識のみで作りました。 特徴 コンパイルするとアセンブリを吐きます 字句解析・構文解析は手書きです。yacc/lex などのツールは使っていません 標準ライブラリも自作です コード行数はテストをのぞくと 9,152行でした。 セルフホストに必要な機能しかないので、Go言語の全機能は網羅していません。 例えば以下の機能は未実装です。 ガベージコレクション go routineとchannel 浮動小数点 設計 70%くらいは 8cc の設計をそのまま引き継いでいます。 残り25%(map,slice,interface,method,型推論等)が自分のオリジナル、残り5%が9cc、くらいな感じです。 かかった期間 2018/10/7に着手し

                                                                      Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
                                                                    • C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と

                                                                      Googleの技術者Chandler Carruth氏らは、C++の後継を目指す実験的なプログラミング言語として「Carbon Language」(以下、Carbon)をGitHubで公開しました(Chandler Carruth氏のツイート)。 GitHubのドキュメントでは、C++が性能を重視するソフトウェア開発において主流のプログラミング言語である一方、言語そのものにおいて数十年にわたる技術的負債が蓄積されていることなどにより段階的に改良していくことが極めて困難になっていると指摘。 一方で、GoやSwift、Kotlin、Rustを始めとする優れた開発者体験を提供する多数のモダンな言語は、C++の代わりに採用する、あるいはC++の開発から移行するには、プログラミング言語の違いや性能のオーバーヘッドなど障壁が多すぎるといった課題があるとも指摘しています。 そこでC++の段階的な改善では

                                                                        C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と
                                                                      • Windowsのタスクバーでもネコ走らせてみた🐈 - Qiita

                                                                        はじめに みなさまはMacのメニューバーでネコを飼うRunCatというアプリをご存知でしょうか?CPU負荷に合わせて走る速度の変わるネコをメニューバー上に表示するだけというしょうもないアプリですが、現在では世界累計45,000ダウンロードを突破し、多くのみなさまに可愛がってもらえる定番アプリとなりつつあります。はじめは悪戯心で作成したジョークアプリが、思いもよらず高評価をいただけており大変嬉しいです。 一方で、Windows版がほしいとの声もちらほら聞こえるようになり、Windows版の模倣アプリも作られつつあることを知りました。そこで、ちゃんと本家からWindows版も出したいなぁと思い立ったが吉日ということで、格安でThinkPadを仕入れてWindowsアプリ開発に初挑戦してみました。 成果物 RunCat for Windows Windowsのタスクバー上に常駐し、CPU負荷に応

                                                                          Windowsのタスクバーでもネコ走らせてみた🐈 - Qiita
                                                                        • プログラミング書籍を10年ぶりに改訂して気がついたこと

                                                                          はじめに 2011年に書いた良いコードを書く技術を増補改訂して出版しました。 Amazon | Rakutenブックス | honto | ヨドバシ.com | Gihyo Direct 10年ぶりに書籍を技術書を改定するという貴重な体験をさせていただいたので、執筆の中で気がついたことをご紹介します。 ちなみに初版を執筆した10年前はこんな世界です😳 VS Codeは存在せず、みんな秀丸やEmacs、vim、Eclipseでコードを書いていた Java 7が出てたけど、Java 8まではあと3年待たないと行けない TypeScriptもGo言語もSwiftもリリースされていない AWSの東京リージョンができたばかりでクラウドって何?って世界 GitはまだマイナーでSubversionでバージョン管理している人が多かった Dockerはまだない、VirtualBoxやVMwareを使ってた

                                                                            プログラミング書籍を10年ぶりに改訂して気がついたこと
                                                                          • [待望のアップデート] VSCodeの内蔵ターミナルがエディタと同様に扱えるようになりました! | DevelopersIO

                                                                            TL;DR まずはこいつをみてくれ。 左右に分割されたエディタウインドウに、テキストエディタとターミナルが並んでいるのがお分かりになられるでしょうか!! なにそれ? これは、先日リリースされた Version 1.58 (June 2021) に含まれる以下のアップデートによるものです。 Terminals in the editor area Terminals can now be created in or moved to the editor area, enabling a multi-dimensional grid layout that persists and remains visible regardless of panel state. Terminals in the editor area - Integrated Terminal - Visual Stu

                                                                              [待望のアップデート] VSCodeの内蔵ターミナルがエディタと同様に扱えるようになりました! | DevelopersIO
                                                                            • ゲーム製作で最初に試みない方がいいn個のこと – 東京工業大学 ロボット技術研究会公式ブログ

                                                                              東京工業大学 ロボット技術研究会公式ブログ 東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。 どうもこんにちは。14の らりお と申します。 この記事は春の新歓ブログリレー19日目の記事です。進捗どうですか! このブログを読んでいる人には、ロ技研に入りたい人も、入るか迷っている人も、関係ない人もいることと思います。この記事では、ゲーム製作やプログラミングに興味がある新入生(ゲーム製作初心者)に向けて、私の試みと後悔と、そこから得た微妙な教訓を綴ります。 題して『ゲーム製作で最初に試みない方がいいn個のこと』です。 ケーススタディ 入出力ライブラリから作ろうとする やろうとしたこと: std::iostream のインターフェースで、透過的に圧縮・展開を行う I/O ライ

                                                                              • Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か?

                                                                                プログラミングをする上で、コメントをきちんと残したり、わかりやすい変数名をつけたりして「読みやすいコード」を目指す作業は重要です。しかし、「読みやすいコード」と「優れたコード」の間には、時として構造上の大きな違いがあるのも事実。そんな「優れたコード」に対するLinuxの開発者リーナス・トーバルズ氏の考え方について、エンジニアのmkirchner氏が説明しています。 mkirchner/linked-list-good-taste: Linus Torvalds' linked list argument for good taste, explained https://github.com/mkirchner/linked-list-good-taste Linus Torvalds: The mind behind Linux | TED Talk https://www.ted.co

                                                                                  Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か?
                                                                                • 1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog

                                                                                  こんにちは ハタ です。 今回は以前iOSのクライアントサイドで実装していた通知ぼかし機能をサーバサイド(配信サーバ)上に再実装した事を書きたいなと思います 今回はかなり内容を絞りに絞ったのですが、長くなってしまいました、、 目次機能があったのでつけてみました、読み飛ばして読みやすくなった(?)かもしれません 目次 目次 通知ぼかし機能とは サーバサイド通知ぼかし プロトタイプの実装 苦労の始まり その1 画像処理速度 苦労の始まり その2 データ量 さらなる計算量の削減を求めて さらなる最適化へ Halide の世界へ 簡単な halide の紹介 苦労の始まり その3 いざ リリース リリースその後 We are hiring! 通知ぼかし機能とは 通知ぼかし機能は、ミラティブ上での配信中に写り込んでしまったiOSの通知ダイアログをダイアログの中身を見えないようにぼかし処理をしてあげる

                                                                                    1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog