並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 631件

新着順 人気順

コンパイラの検索結果1 - 40 件 / 631件

コンパイラに関するエントリは631件あります。 プログラミングprogramming開発 などが関連タグです。 人気エントリには 『ハーバード大のコンピュータサイエンス講座「CS50」の日本語化が完了し、無償公開』などがあります。
  • ハーバード大のコンピュータサイエンス講座「CS50」の日本語化が完了し、無償公開

      ハーバード大のコンピュータサイエンス講座「CS50」の日本語化が完了し、無償公開
    • ハーバード大学のコンピューターサイエンスの講義(日本語版)が無料公開されている件「聞き取りやすいから英語も勉強できる」

      QDくん⚡️Python x 機械学習 x 金融工学 @developer_quant 東工大が無料公開しているPython解説サイト chokkan.github.io/python/index.h… 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出力やオブジェクト指向、NumpyとMatplotlibの使い方などをひと通り学べる。 pic.twitter.com/XyBBslyeBa 2022-10-08 22:01:21 🎍QDくん🎍Python x 機械学習 x 金融工学 @developer_quant 東工大が無料公開しているPython解説サイト chokkan.github.io/python/index.h… 初心者の目線に合わせた丁寧な説明で、かゆいところに手が届く教材。 基本的な文法、データ構造、ファイル入出

        ハーバード大学のコンピューターサイエンスの講義(日本語版)が無料公開されている件「聞き取りやすいから英語も勉強できる」
      • 100日後に退職する47歳 非公式 まとめ

        更新日:9月20日20時23分

          100日後に退職する47歳 非公式 まとめ
        • Webサーバーアーキテクチャ進化論2023

          はじめに 最近プログラマーとしてのキャリアに一区切りつけようと思っており、これまでのプログラミングの勉強の集大成となるブログを書きたくなったので書く。初めてプログラミングをして、フロントエンド開発をして、サーバーから値が返ってきたときは「どういう仕組みで値が返ってきたんだ?」と疑問に思っていた。ずっと理解したくて理解できていなかった。だからずっと勉強していた。そして最近になってようやく自分の言葉で説明できるようになった気がしたのでブログを書きたい。 2015 年版が自分の原点であり、この記事を書くモチベーションになった このような記事は実は過去に存在している。 FYI: https://blog.yuuk.io/entry/2015-webserver-architecture その記事はサーバーがどういう仕組みで動いていて、どのように進化し、2015 年に至るかを解説してくれた記事だ。自

            Webサーバーアーキテクチャ進化論2023
          • 働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog

            4年前に会社の福利厚生を使ってスタンフォードの授業を取ってみたら面白く、 働きながらでも続けられそうだなという実感を得たので、 2年後、受験を経てジョージア工科大学にリモートで通い始めた。 そして先日、ジョージア工科大学からコンピュータサイエンス修士号をいただくことができた。 画像の学位記は卒業式イベント用の非公式のもので、1~2か月すると Masterとちゃんと書いてある本物が来るらしい *1 。 After 1 year and 9 months, I graduated from Georgia Tech and got a master's degree in computer science. It was intense to be a student while working full-time, but I learned a lot. pic.twitter.com/J

              働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog
            • プログラムを動かす時にメモリがどのように割り当て・解放されるのかをめちゃくちゃわかりやすいイメージ画像で解説してくれるサイト「Memory Allocation」

              コンピューター上でプログラムを動作する際に必要になるのがメモリです。プログラム自体をメモリに読み込む必要があるのはもちろん、プログラムが行う動作はほとんど「メモリから値を取りだして計算し、メモリに保存する」であるといっても過言ではありません。プログラムが動作する際にメモリがどのように管理されているのかについて、ベテランプログラマーのサム・ローズさんがブログで解説しています。 Memory Allocation https://samwho.dev/memory-allocation/ C言語の標準ライブラリには「malloc」と「free」という2つの関数が用意されています。この2つはなんと1979年のUnix v7から存在している歴史ある関数で、mallocがメモリの割り当てを担当し、freeがメモリの解放を担当しています。サム・ローズさんの解説は「この2つの関数の中身を自分で実装する」

                プログラムを動かす時にメモリがどのように割り当て・解放されるのかをめちゃくちゃわかりやすいイメージ画像で解説してくれるサイト「Memory Allocation」
              • エンジニアが給料を12倍にする方法 - k0kubun's blog

                はてブの人気エントリーに日本のエンジニア達は海外に出なければいけないという記事があった。 カナダ在住で経験年数4年のソフトウェアエンジニアで年収1600万円の方らしく、 日本より海外の方がソフトウェアエンジニアの給料が一般に高いので海外に行くべきという話が書かれている。 実際僕も居住地域による給与差を利用すべく渡米し、先月の記事 では新卒から数えて8年で年収が12倍になっていた話も紹介した。 一方、年収1600万円であれば海外に出なくても稼げると思っているので、 国内にいてもできそうなものも含め、ソフトウェアエンジニアとして給料を上げる上で過去に活用したハックを紹介していきたい。 昇給履歴 新卒入社 僕が新卒で入社した会社の当時の初年度給与は450万円だった (公開情報)。 大学の4年間はずっとアルバイトとしてソフトウェアエンジニアをやっていて、 3社を渡り歩いて時給は800〜1350円と

                  エンジニアが給料を12倍にする方法 - k0kubun's blog
                • Linux メモリ管理を理解したい - Qiita

                  Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基本的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

                    Linux メモリ管理を理解したい - Qiita
                  • すべてのフェーズでミスが重なった ―全銀ネットとNTTデータ、全銀システム通信障害の詳細を説明 | gihyo.jp

                    すべてのフェーズでミスが重なった ―全銀ネットとNTTデータ⁠⁠、全銀システム通信障害の詳細を説明 全国銀行資金決済ネットワーク(以下、全銀ネット)とNTTデータは12月1日、2023年10月10日~11日にかけて全国銀行データ通信システム(以下、全銀システム)で発生した通信障害に関する報道関係者向けの説明会を開催しました。本件についてはNTTデータが11月6日に行った途中経過報告の内容をもとにレポートしましたが、今回、全銀ネットとNTTデータが揃って会見を行ったことで、より詳細な障害の原因が判明したので、あらためてその内容を検証してみたいと思います。 説明会の登壇者。左から、全銀ネット 企画部長 千葉雄一氏、事務局長兼業務部長 小林健一氏、理事長 辻松雄氏、NTTデータ 代表取締役社長佐々木 裕氏、取締役副社長執行役員 鈴木正範氏 なお、全銀ネットとNTTデータは、今回の障害に関して金融

                      すべてのフェーズでミスが重なった ―全銀ネットとNTTデータ、全銀システム通信障害の詳細を説明 | gihyo.jp
                    • 全プログラミング学習者へ。ハーバード大の入門講座「CS50」が無償かつ日本語で学べるようになりました! | ライフハッカー・ジャパン

                      サンディスクのmicroSDカード 512GBが40%OFF。写真や動画のデータ置き場はこれで良くない?【Amazonセール】

                        全プログラミング学習者へ。ハーバード大の入門講座「CS50」が無償かつ日本語で学べるようになりました! | ライフハッカー・ジャパン
                      • すべてのプログラマーが試すべき挑戦的なプロジェクト

                        Austin Z. Henleyのブログより。 更新12/14: この投稿は、Hacker NewsとRedditに関する多くの議論に拍車をかけました。 提案されたプロジェクトのいくつかを収集し、この投稿の最後にリストに入れました。 私はよくサイドプロジェクトを始めたいが、何を作るべきか分からない多くの学生やプロの開発者と話します。以下は、私に多くを教えてくれたいくつかのソフトウェアプロジェクトです。実際、それらは何度も作ることができ、毎回新しいことを学ぶことができるので素晴らしいです。従って、何を作るのか分からない場合、または新しいプログラミング言語またはフレームワークを学びたい場合は、私は次のいずれかから始めます。 テキストエディタ 2Dゲーム - スペースインベーダー コンパイラ - Tiny BASIC ミニ・オペレーティング・システム スプレッドシート (難しい!) ビデオゲーム

                          すべてのプログラマーが試すべき挑戦的なプロジェクト
                        • 現場で役立つシステム設計の原則メモ - Qiita

                          ※この記事は著者の増田さんの了解の上で限定公開させて頂いております。 https://twitter.com/masuda220/status/1215122054795522049?s=20 オブジェクト指向、設計がなぜ必要か = ソフトウェア全体の整理整頓をするため 第1章 小さくまとめてわかりやすくする 変更が大変なプログラムの特徴 メソッドが長い クラスが大きい 引数が多い 関心事を詰め込みすぎている ちょっとずつゴミコードが追加されていった結果 重複しているコードをutil神クラスに押し込むと、あらゆる関心事が集中してしまう 変更に強いプログラムの書き方 メソッドは短く、クラスは小さく 略語は使わない 意味のまとまりで空行をうまく使う 説明用のローカル変数の導入(変更の影響範囲を局所化) 1つの変数に代入を繰り返す破壊的代入を避ける 意味のあるコードのまとまり(段落)を「メソッド

                            現場で役立つシステム設計の原則メモ - Qiita
                          • アニメ「Sonny Boy」の『難解』プログラムの解説 - まめめも

                            『Sonny Boy』というアニメが放送されています。学校が異次元に漂流してしまい、超能力に目覚めた生徒たちがサバイバルしながら、さまざまな奇妙な現象の裏にあるルールを解き明かし、元の世界に変える方法を探す、というストーリーです。ルールが分かったあとで何度も見直したくなります。 anime.shochiku.co.jp さて今回、『Sonny Boy』に、プログラムを寄稿しました。プログラムでおもしろいCGを作ったとかではなく、プログラムの実行の様子そのものが『Sonny Boy』の5話の中で放送されました。 こういうプログラムです。 nankai.rb このプログラムがどういうものだったかを解説します。 どんなプログラム? 実行すると、「難解」という文字がほどけてなくなるアニメーションをします。 起動したらまず、プログラム自身が画面に表示されます。 しばらくしたら「難解」が左から右へほど

                              アニメ「Sonny Boy」の『難解』プログラムの解説 - まめめも
                            • なぜCを学ぶべきなのか - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ

                              プログラミング言語としてのCは、初学者にとっては難しい言語であるのは確かです。中には、初心者が学ぶべき言語ではないと言い出す人もいます。ですが、私たちセキュリティ・ネットワークコースの教員は、我々のコースの学生は早期にCを学ぶべきであると考え、このカリキュラムを設定しています。以下に理由を列挙します。 Cはコンピュータの構造に深く根ざした言語なので、コンピュータそのものの学習を同時に進めることで、相互の理解が深まると考えています。例えば主記憶(メモリ)上にプログラムとデータの双方が置かれるフォン・ノイマンアーキテクチャや、メモリ上のデータ配置の問題、エンディアンの問題などを直接感じられるのはCならではだと思います。 CはOSや、コンパイラなどの言語処理系、組み込み機器などで広く使われており、その構造や動作と深く関わっているため、セキュリティとネットワークの理解のために欠かせないからです。

                                なぜCを学ぶべきなのか - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ
                              • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

                                はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

                                  「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
                                • 技術推薦図書

                                  注) 2016年辺りのまとめなので、新しめの本が入ってないのと、新しめの特定の技術の本は2020年現在だと通用しない本が多いです。 古典含め普遍的な物も多々あるので、現在も通用する物が多いはずです。リンク先が旧版の本も有るので注意。 Javaメインの会社の本棚です。あと、じつは洋書版もあります。

                                    技術推薦図書
                                  • StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita

                                    Original article:https://dev.to/dotnetsafer/rip-copy-and-paste-from-stackoverflow-trojan-source-solution-4p8f その昔コピペできない文章というものがありました。 実際は単にフォントを変えているだけというものですが、人間の目に見える文字と実際の文字が異なることを利用した攻撃の一種と見ることもできます。 さて、最近になって似たような攻撃に関する論文が公開されました。 人間には見えない文字を織り交ぜることによって、一見問題ないコードが実は脆弱になってしまうというものです。 ただ論文は堅苦しいうえに長くて読むのがつらいので、具体的に何がどうなのかよくわかりません。 平易に解説している記事があったので紹介してみます。 以下はDotnetsafer( Twitter / GitHub / Web

                                      StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita
                                    • 日立に戻りたいわけがない。 - テストステ論

                                      新卒で日立へおれが新卒で入ったのは、日立製作所だ。 おれが面接を受けたのはシステム開発研究所というところだったが、 おれが入った年に研究所の再編成があって、横浜研究所というところに配属になった。 横浜研究所は横浜の戸塚というところにあり、 寮はそこまでバスで一本のところにあった。 寮生活は隣人の先輩が発狂して泣き叫びだしたり、色々トラブルはあったが、 まぁ楽しかった。 寮というのはなかなかいいものだ。 京大で吉田寮や熊野寮にわざわざ住みたいという人がいることも微妙にだが理解出来る。 システム開発という名前のとおり、 そこはソフトウェアの応用研究をやってる研究所で、 と言っても企業の応用研究というのは事業所から依頼された研究(通称、依頼研)だったり、 あるいはもう少し先のことを考えた先行研と呼ばれるものがあったするくらいで、 大学のような研究をやってるというところではないのだが、 まぁおれ的

                                      • CとRustで一から作るマイクロカーネルOS

                                        マイクロカーネルは浪漫に溢れる非常に作りがいのあるソフトウェアです。この記事は,「マイクロカーネルベースのOSの一から作ってIaaSで動かす」ことを目標に作ったマイクロカーネルベースのOS Resea(りーせあ)の設計と実装について軽くまとめた物です。 ソースコードはGitHubにあります。 マイクロカーネルとは Linuxのようなモノリシックカーネルでは色んな機能がカーネル空間で動きますが,マイクロカーネルではユーザプロセスたちが互いに通信しながらOSを作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい

                                        • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

                                          Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

                                            コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
                                          • 君は逆ポーランド電卓を知っているか? ~そして自作へ

                                            1983年徳島県生まれ。大阪在住。散歩が趣味の組込エンジニア。エアコンの配管や室外機のある風景など、普段着の街を見るのが好き。日常的すぎて誰も気にしないようなモノに気付いていきたい。(動画インタビュー) 前の記事:タイムズパーキングの看板、でっぱってるか? でっぱってないか? > 個人サイト NEKOPLA Tumblr 逆ポーランド記法とは 世の中には、大きく分けて2種類の電卓がある。ほとんどの人が使っている普通の電卓(「中置記法の電卓」という)と、入力方法の異なる「逆ポーランド記法の電卓」だ。 これが逆ポーランド電卓(HP-16C)。どこにも“=”キーがなく、反面デカデカと“ENTER”キーがあるのが特徴 電卓の紹介をする前に、まずは「逆ポーランド記法」ってなんだ? という点について説明する必要がある。めんどうだけど、少しお付き合い下さい。 言語にはいろんな語順がある。日本語だと「主語

                                              君は逆ポーランド電卓を知っているか? ~そして自作へ
                                            • プログラミングでつまづいてきたこと - 覚書

                                              プログラミング初心者に対してどういう情報が役立つのかをぼんやり考えていると、そこそこコードを書けるベテランが、いつ、どういうことにつまづいてきたのかを書くとけっこう有益なのではないかと思ったので書きました。これを読むと直接プログラミング能力が上がるわけではないですが、「ああ、こういうところでつまづいてもいっぱしのプログラマになれている人もいるのだな」と思ってもらうのが目的です。成功談よりも失敗談のほうが役立つとよく言われますが、それと少し似ているのかもしれません。 全段落で「いっぱしのプログラマ」とか言った手前、自分のことを書いておきます。18歳ごろから20年くらい前からプログラミングをしていて、主に有名どころのOSSに向けてコードを書いてきました。昔はLinuxカーネルを10年少々やっていて、ここ最近はCephオーケストレータであるRookの開発とかをしています。プログラマとしてはスーパ

                                                プログラミングでつまづいてきたこと - 覚書
                                              • とほほのRust入門 - とほほのWWW入門

                                                「ラスト」と読みます。 Mozilla に従事するグレイドン・ホアレが個人的に開発していましたが、のちに Mozilla の公式プロジェクトとなりました。 2021年には、AWS, Google, Huawei, Microsoft, Mozilla がメンバーとなる Rust Foundation に権利が委譲されました。 Rust は「錆(さび)」を意味します。開発チームに自転車乗りが多く、ロゴも自転車のさび付きチェーリングを元にしています。 C言語やC++に変わる言語として開発されました。 Stack Overflow で2016~2019年の間「最も愛されているプログラミング言語」として1位を獲得しています。 Firefox の Servo(HTMLレンダリングエンジン)も Rust で開発されています。 if ... や while ... なども式として評価することができます。

                                                • 「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

                                                  TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くない UTF-8は神 2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しました UTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

                                                    「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
                                                  • 他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?

                                                    回答 (9件中の1件目) qmailという、極端にバグが少なく、安全で高速なSMTPのサーバーがあります。いまはシェアを落としていますが、数年間放置しておいても安定して長期間動くので、まだまだ現在も使われています。 the Internet's MTA of choice このCソースはすごいですよ。putsやprintf, fopenなどの標準Cライブラリの関数は安全ではないという理由で使わず、すべてsubstdioという、stdioのサブセットを独自実装しています。こんなことは普通はしないですね。 作者のDJB氏は、プログラムは全部のパターンをテストできなければならない。全部の...

                                                      他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?
                                                    • C++ の学習サイトを作りました - Qiita

                                                      はじめに C++ って他の言語に比べると勉強しづらくないですか? 書籍や学習サイトの内容が古い、または少ないんですよね。ただでさえ言語仕様が複雑なのに、それを手助けする情報も少ないと初学者には辛いんじゃないかと思います。というか僕がそうでした。 そんなわけで、もう少し今風な学習サイトを作ろうと思って作成しました。 ゼロから学ぶ C++ ちゃんとスマホでも読めるようになっています。 C++11 をベースに作っているので、このサイトももはや古い方に入るかも知れませんが、C++20 が浸透してきたらアップデートしようと思います。 よかったらご活用下さい。 ゼロから学ぶ Python(姉妹サイト) 『ゼロから学ぶ Python』というサイトも作成しています。あわせてご活用下さい。 さいごに 上記のサイトはどちらも GitHub でソースコードを管理しています。 スターを付けてもらうと励みになります

                                                        C++ の学習サイトを作りました - Qiita
                                                      • ソフトウェア1 (2020)

                                                        ソフトウェア1 (2020)¶ 本サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。 電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の2年生は最初のオリエンテーションで全員slackに招待されるはずですが、もし招待されていなければ松井まで連絡してください。 3年生は既に全員招待済みのはずです。電気系以外の履修者、および4年生は招待されていないので、松井まで個別に連絡してください。 本サイトは2020年度版です。2021年度版はこちら。 ニュース¶ [2020.11.16] Q&Aにweek7を追加しました。 [2020.11.12] week7、およびバージョン管理を追加しました。 [2020.11.09]

                                                        • スクリプト言語を舐めてはいけない|shi3z|note

                                                          おれはハッカーだ。 なので、ハッカーではない人種と呑むのが苦手である。 たとえば「ITエンジニア」と自称するような人たちだ。 当然だが、ITエンジニアと自称する人はハッカーではない。 ITエンジニアと言う言葉はスコープが広すぎていちいち細かい説明を聞かなければならない。 これが厄介なところである。 あるとき、友達の家で飲み会をすると言われ、誰が来るの?と聞いたら知らないIT関連会社のエンジニアたちだという。 エンジニアと呑むと喧嘩しちゃうので断ったのだが、いろいろあっていくことになってしまった。 するとやっぱりこんなはなしをしていた。 「やっぱ私もRubyみたいなスクリプト言語なんか卒業してコンパイル言語やんなきゃ。処理速度がね…」 「コンパイル言語って?」 「TypeScriptとかJavaとかC#とか」 「それ、中間コード言語じゃねえか。なんの意味があるんだ。YARV知らないのか」 ま

                                                            スクリプト言語を舐めてはいけない|shi3z|note
                                                          • 「コンピュータシステムの理論と実装」をやりきりました - Qiita

                                                            コンピュータシステムの理論と実装 をやりきったので、メモを残しておきます。 本の紹介 コンピュータシステムの理論と実装 では、NAND ゲートからはじめて、最終的にはアプリケーションを動作させるところまで、ボトムアップの視点でコンピュータシステムの説明が記載されています。通称「Nand2Tetris」。名前がかっこいいですね。 とてもわかりやすい裏書きの説明は以下 コンピュータを理解するための最善の方法はゼロからコンピュータを作ることで、その構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できる。本書では、これらの構成要素をひとつずつ組み立てる。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計。オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させる

                                                              「コンピュータシステムの理論と実装」をやりきりました - Qiita
                                                            • Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記

                                                              どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ

                                                                Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記
                                                              • 表紙 - 本物のC

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

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

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

                                                                    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
                                                                  • Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ

                                                                    他の言語になれた人が、初めてGoを書いた時にわかりにくいな、と思った部分はどういうところがあるのか、難しいポイントはどこか、という情報を自分の経験や、会社の内外の人に聞いたりしてまとめてみました。まだまだたくさんあるのですが、多すぎるのでまずはこんなところで。コンテナで開発することがこれからますます増えていくと思われますし、その時にコンテナとの相性が抜群なGoをこれから使い始める人もどんどん増えていくと思います。 Goは特に言語のコアをシンプルに、何かを実現するときはそのシンプルな機能を組み合わせて実現しよう、というコンセプトです。つまり、他の言語で実現したいこと・できていることに比べて、Goは組み合わせ(イディオム)でカバーする領域が広くなります。そのあたりのとっかかりになる情報を提供することが、これからGoを触る人にとってつまずきを減らすことになると思います。 Go Conferenc

                                                                      Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ
                                                                    • 2で割ることと3で割ること - Qiita

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

                                                                        2で割ることと3で割ること - Qiita
                                                                      • 本当に私の人生を変えた技術書10選 - FPGA開発日記

                                                                        年末ですね。年末に技術っぽいことを書いても誰も見ていないので、どうでもいいことを書こうと思います。 皆さん技術書は好きですか?好きですよね。読みもしないのに技術書典なんかに大挙して押しかけて、結局積読が増えていく。積んでいるとなんか落ち着くのかもしれません。 私は現在ハードウェア関連の技術者として働いているわけですが、短い人生の中で読んだ技術書の中で、本当に私の人生を変えてしまった技術書を思い出しながら紹介してみたいと思います。 あらかじめ断っておきますが、「名著」や「良い本」を紹介するのではなく、あくまでも私の人生を変えた本です。逆にいうと、あまり名著は出てきません。名著の紹介はすでにいろんなところでやられているので、そちらを見ていただければ。 1. 図解で分かるPCアーキテクチャのすべて(初版) 〈最新〉図解でわかる PCアーキテクチャのすべて 作者:小泉 修出版社/メーカー: 日本実

                                                                          本当に私の人生を変えた技術書10選 - FPGA開発日記
                                                                        • sight 次世代を生み出すテクノロジーの視点 - Si-ght.jpにようこそ。

                                                                            sight 次世代を生み出すテクノロジーの視点 - Si-ght.jpにようこそ。
                                                                          • 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

                                                                                  新着記事