並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 437件

新着順 人気順

機械語の検索結果241 - 280 件 / 437件

  • v8によって生成されるbytecodeを確認してみる - kakts-log

    Qiita Node.js アドベントカレンダー2021の20日目の記事です qiita.com v8のbytecodeについて、自分で書いたコードでどうやって確認するか気になったので調べてみました。 v8によるバイトコード生成 v8がどうやってバイトコード、機械語を生成するかざっくりと整理します。 v8がJavaScriptをコンパイルするとき、パーサはASTを生成します。 ASTはJavascriptコードの文法構造を表現したツリーです。 v8のインタプリタであるIgnitionはこのASTからバイトコードを生成します。 一方で、最適化コンパイラであるTurboFanは最終的にバイトコードを取得し、そのバイトコードから最適化された機械語を生成します。 なぜv8がこの2つの実行モードを持っているかについては、下記の動画で説明されています。 youtu.be JavaScriptコードから

      v8によって生成されるbytecodeを確認してみる - kakts-log
    • The Rust Programming Language: 2018 Edition

      Last Commit Date of Markdown Sources: Tue Oct 25 10:20:24 2022 +0000 i The Rust Programming Language 日本語版 著:Steve Klabnik、Carol Nichols、貢献:Rust コミュニティ このテキストのこの版では Rust 1.58(2022 年 1 月 13 日リリース)かそれ以降が使われているこ とを前提にしています。Rust をインストールしたりアップデートしたりするには第 1 章の「インス トール」節を読んでください。 HTML 版は https://doc.rust-lang.org/stable/book/で公開されています。オフラインのときは、 rustup でインストールした Rust を使って rustup docs --book で開けます。 訳注:日本語の

      • 【MLIR】GPU上で走る自作言語のコンパイラを作っている話

        この記事は、KCS アドベントカレンダー 23 日目の記事です。 22 日目・24 日目 GPU 上で走る自作言語のコンパイラ こんにちは、lemolatoon です。 最近は、夏に自作 OS ゼミでセキュキャンに参加したりして、また低レイヤへの気持ちを高めたりしていました。 自作 OS も一段落ついた頃、MLIRというものを知り、何やら面白そうだぞということで色々調べて手を動かしたりしていたのですが、ある程度 MLIR の利点を生かしたいい感じのものができつつあるので紹介したいと思います。 まず最初に自作言語を作る手順を、LLVM IR に変換するところまで説明します。 その後、GPU 上で走らせる部分について書きます。 実装は、すべて以下のリポジトリにあります。LLVM IR への変換は少なくともch6ブランチに、GPU 上で走らせる部分の実装はlower-to-gpuブランチにありま

          【MLIR】GPU上で走る自作言語のコンパイラを作っている話
        • プログラミング言語「C」は“あの家電”でもひっそりと活躍していた?

          関連キーワード アプリケーション開発 | プログラミング プログラミング言語「C」は、OSから組み込みシステムまで、さまざまな先端技術を支えている。一般的にCプログラムは 実行中のメモリ使用量を管理可能な範囲に抑えることができる そのため、実行時のリソース要件も妥当な範囲に収まる ハードウェアを制御できる システム間の移植性が高い といった特徴を持つ。これらの特性が力を発揮するCの利用例を幾つか紹介する。 利用例1.機械の組み込みシステム 併せて読みたいお薦め記事 連載:いまさら聞けない「C」の歴史 第1回:プログラミング言語「C」と「UNIX」の“深過ぎる関係”とは? 歴史を振り返る 第2回:K&R版Cとは? 「C」を“革新的プログラミング言語”にした立役者 第3回:「ANSI C」から「C11」まで プログラミング言語「C」標準化の歴史を振り返る Cの関連言語 プログラミング言語「C+

            プログラミング言語「C」は“あの家電”でもひっそりと活躍していた?
          • コモドール64でビットコインをマイニングする猛者が登場、1ブロック解析にどれだけかかるのか?

            ビットコインなどの仮想通貨のマイニングは複雑な演算作業を行うため、効率的にマイニングを行うためには高性能なスペックのマシンを使う必要があります。そんな仮想通貨のマイニングを、40年近く前に発売された8ビットホームコンピューターのコモドール64で行う実験を、レトロPCを扱うYouTubeチャンネル・8-Bit Show And Tellがムービーで公開しています。 Bitcoin Mining on the Commodore 64? - YouTube 記事作成時点でマイニング用ASICのハッシュレートは毎秒100テラH/sほど。また、携帯ゲーム機である初代ゲームボーイでマイニングした実験では、単3電池4本で動作する一方でハッシュレート0.8H/sで、ASICと比較して125兆分の1という結果が示されました。 ゲームボーイでビットコインをマイニングする猛者が登場、単3電池4本で採掘可能 -

              コモドール64でビットコインをマイニングする猛者が登場、1ブロック解析にどれだけかかるのか?
            • 低レイヤを知りたい人のためのCコンパイラ作成入門

              はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム この本には一冊の本に盛り込むにはやや欲張りな内容を詰め込みました。本書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 この本では、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを本書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

              • PIC,PIE,shellcode,ASLR

                戻る おまけ : PIC,PIE,shellcode,ASLR 最後に、知っておくといい話題として、 昔からよく使われるPICと呼ばれるプログラムの形式について説明し、 メモリ破壊バグが引き置こすshellcodeの紹介、 それからPICを応用してshellcodeの問題を緩和する手法である ASLR について説明しておこう。 PIC (Position Independent Code:位置独立コード)とは、どんなアドレスに配置されても動作する機械語コードのことだ。 ここまで説明してきた機械語プログラムは、PICではなかった。例えば、次のELF実行ファイルを考えよう。 pic_pie/no_pic.s .globl _start .text _start: incl data0 mov $60, %rax syscall .data data0: .long 8 $ as -o no_p

                • パソコンを回路レベルで自作する (Intel x86 IA-32) (2ページ目)

                  解答略 @kaitou_ryaku FPGAでCPUを自作してて、機械語命令を1つ増やしたいとする。理想としては、その機能に対応するサブルーチン的なのを1つだけ作り、今のCPUにくっつけて実装したい。しかしそれは無理だ。CPUはステージに分割されてて、少なくともデコーダーとALUの二箇所で書き換えが生じる。他にも細々とした修正が入る 2019-07-08 23:12:07 解答略 @kaitou_ryaku 同様の問題がコンパイラの自作でも生じる。新たな構文に対応するには字句解析・構文解析・中間コード生成まで広くて薄い書き換えが必要になる。ステージ間が疎結合で抽象化されてれば書き換えが少なく済む。このCPUとコンパイラの共通性は、どちらもシーケンシャルな言語処理系という本質に起因してる 2019-07-08 23:31:04 2019/07/09 CPUの回路図を分かりやすく描こうとして、

                    パソコンを回路レベルで自作する (Intel x86 IA-32) (2ページ目)
                  • 【第13回リレーブログ】隣り合わせの灰と青春 ベニー松山氏 | BEEP

                    執筆者略歴 【べにーまつやま】 小説家・ゲームライター・シナリオライター。『マイコンBASICマガジン』でライター活動をスタートし、1988年にウィザードリィ小説『隣り合わせの灰と青春』を発表。所属するスタジオベントスタッフが制作する攻略本『解体真書』『アルティマニア』シリーズにもそのゲームタイトルを題材にした小説を執筆する。『ウィザードリィ外伝Ⅱ・古代皇帝の呪い』(ゲームボーイ)、『BASTARD!! 虚ろなる神々の器』(プレイステーション)などのゲーム制作にも参加。現在もスクウェア・エニックスが運営する『サガ』シリーズ作品『インペリアル サガ エクリプス』(PCブラウザゲーム)のシナリオを手がけている。なお、ウィザードリィ小説シリーズはAmazon Kindleの電子書籍にて幻想迷宮書店から好評配信中。2020年7月21日には株式会社エクスペリエンス発売のダンジョンRPG『新釈・剣の街

                      【第13回リレーブログ】隣り合わせの灰と青春 ベニー松山氏 | BEEP
                    • 達人出版会

                      探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 実践力をアップする Pythonによるアルゴリズムの教科書 クジラ飛行机 スッキリわかるサーブレット&JSP入門 第4版 国本 大悟(著), 株式会社フレアリンク(監修) 徹底攻略 基本情報技術者教科書 令和6年度 株式会社わくわくスタディワールド 瀬戸美月 徹底攻略 情報セキュリティマネジメント予想問題集 令和6年度 五十嵐 聡 詳説 ユーザビリティのための産業共通様式 福住 伸一, 平沢 尚毅 DX時代の観光と社会

                        達人出版会
                      • 第29回 共有ライブラリと依存関係[1] | gihyo.jp

                        年度末や年度始めをバタバタと過しているうちに4月も下旬となってしまいました。日中は上着が無くても汗ばむくらいの陽気なのに、朝晩は冷えこむことも多く、着ていく服に悩む時期です。昨今は新型コロナではなくても、咳や発熱があれば社会生活が大幅に制限されるので、体調管理が大変です。 さて、最近はあまり取りあげる機会がなかったものの、筆者がまとめ役をやっているPlamo Linuxの開発は続いており、現在はPlamo-7.3のRC版をいくつか出して、正式版への最終調整といった段階に入っています。この段階では大規模な変更はほぼ終了していて、ライブラリの依存関係の確認や調整が主な作業になります。 Linuxをはじめ、最近のOSで「ライブラリ」と言うと、共有ライブラリ(shared library)が標準になり、さまざまな機能を提供するライブラリと、その機能を使うアプリケーションは、それぞれ独立に開発できる

                          第29回 共有ライブラリと依存関係[1] | gihyo.jp
                        • あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita

                          はじめに 知っての通り NoSQL とは一般的には RDBMS ではないデータベース管理システムのことですが、実は 世界初の「NoSQL」は Unix シェルベースの RDBMS なのです。NoSQL は Unix 哲学に基づいており、標準入出力やパイプを使うフィルタコマンドや、SQL の JOIN や集合演算相当の機能を持ったコマンドセットとなっており、シェルスクリプトや awk や Perl で実装されており、データはすべてプレーンなテキストファイルに保存します。 それが「NoSQL: a non-SQL RDBMS」です。 注意 この記事は技術系の読み物(雑学)です。データベースの技術的な話はほとんど出てこないのであしからず。 ネタバレ この NoSQL が誕生したのは 1998 年です。そして、みんなが知ってる NoSQL という言葉が誕生したのは 2009 年です。そういうことで

                            あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita
                          • 初心者向け・アセンブラで学ぶ「コンピュータの動作原理」の基礎 - paiza times

                            Gerd AltmannによるPixabayからの画像 こんにちは。倉内です。 皆さんは「コンピュータがなぜ動くのか」を考えたことはありますか? もちろん動作原理を知らなくてもコンピュータを使うことはできますが、ITエンジニアとしてメモリやCPU、入出力装置、それらの役割と仕組みなどハードウェア部分の理解を深めておいて損はありません。 とはいえ情報系以外の専攻ですと体系的に学ぶ機会はなかなかありませんし、テキスト片手に独学するのも結難しい分野で「いつか勉強しよう…」と思いつつ手をつけられていない方も多いですよね。 そこで今回は、paizaラーニングに新しく登場した「情報処理入門 アセンブラ言語編」の動画講座を使って分かりやすく解説していきます! コンピュータの動作と「アセンブラ」の役割 コンピュータは簡単に表すとこのような構成になっていて、特に重要なのがCPUとメモリの役割です。 CPUや

                              初心者向け・アセンブラで学ぶ「コンピュータの動作原理」の基礎 - paiza times
                            • RubyKaigi のセッションを楽しむための予習会をした - Ruby 処理系の基礎知識編

                              Leaner 開発チームの黒曜(@kokuyouwind)です。 明後日には RubyKaigi 2023 が始まりますね!自分は LT を採択してもらえて 2 番手で話すので、ぜひ聴きに来てください! 前回記事 で紹介したとおり、弊社には今回始めて RubyKaigi に参加するメンバーも数名いるため、社内で RubyKaigi の予習会を行いました。 今回はこのときに話した内容のうち、「Ruby 処理系の基礎知識」の部分を記事にまとめます。 Ruby 処理系の種類 Ruby のソースコードを実行するには Ruby 処理系を利用します。Ruby 処理系にはいくつかの種類があり、それぞれに開発が行われています。 以下に、 RubyKaigi で触れられることの多い処理系をいくつか紹介します。 MRI(CRuby) MRI(CRuby とも呼ばれる)は、 C 言語で実装された、公式の Rub

                                RubyKaigi のセッションを楽しむための予習会をした - Ruby 処理系の基礎知識編
                              • 日産はなぜPasocomMini PC-8001版「走れ!スカイライン」の使用をOKしたのか 日産の担当者に聞いてみた | ガジェット通信 GetNews

                                日産はなぜPasocomMini PC-8001版「走れ!スカイライン」の使用をOKしたのか 日産の担当者に聞いてみた 8月に開催された「PC-8001 40周年記者発表会」で、NECパーソナルコンピュータは1979年に発売された8ビットパソコン「PC-8001」を手のひらサイズでよみがえらせたミニチュアパソコン「PasocomMini PC-8001」を発表。エミュレータ上でN-BASICが動作し、BASICや機械語によるプログラミングができるほか、当時PC-8001でプレイできた16本のゲームを収録しているのですが、この中にはもともと非公式のレースゲーム「走れ!スカイライン」が収録されています。 発表会では、PasocomMini PC-8001の開発を担当したハル研究所がすべてのゲームについて権利処理を行い、「走れ!スカイライン」も日産自動車から使用許可をもらったというエピソードが明

                                  日産はなぜPasocomMini PC-8001版「走れ!スカイライン」の使用をOKしたのか 日産の担当者に聞いてみた | ガジェット通信 GetNews
                                • 週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか|TechRacho by BPS株式会社

                                  2020.08.04 週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか こんにちは、hachi8833です。「Kaigi on Rails」のプロポーザルがいっぱい集まったそうです🎉。 【CFPフォームクローズのお知らせ】 先程CFPフォームがクローズされました。予想を越えてたくさんの方にプロポ―ザルを提出いただき、運営チーム一同大変感謝しております。これから運営チームで選定を進め、8月中旬を目処に結果をお伝えする予定です。#kaigionrails — Kaigi on Rails (@kaigionrails) August 1, 2020 さらにこんなイベントもあったことに後から気づきました。 こんばんは!https://t.co/52TgXP8P

                                    週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか|TechRacho by BPS株式会社
                                  • プログラムがメモリをどう使うかを理解する(4)

                                    この記事は このシリーズの4本目です。 前回の記事は こちらです。 まだ色々書きたいことはあるのですが、当初のタイトルである「プログラムがメモリをどう使うか」という観点では、今回で一区切りにします。 プログラムの実行から終了までを追う 前回で スタック・ヒープ・静的領域 という3大領域を認識しました。今回は仕上げとして、プログラムの実行を開始してから終了するまでに、それらがどう確保され、どう利用され、どう解放されていくのかを確認していきましょう。 プログラムを実行する際に、OSからアドレス空間を与えられる プログラムから利用できるメモリにはアドレスが割り振られますが、昨今のOSでは同時に複数のプログラムが動作することが当たり前になっています。昔はわざわざ「マルチタスクOS」と呼んでいましたが、今となってはわざわざそんな呼び方をしなくても当たり前になっていますね。 そうなると心配性な人は「ア

                                      プログラムがメモリをどう使うかを理解する(4)
                                    • 出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか~MIXIエンジニアが語る技術愛~

                                      ミクシィには、探究心溢れるエンジニアがたくさん在籍しています。 その探究心は業務で扱う技術にとどまらず、趣味で書いているプログラムだったり、個人的に研究している言語だったりと、自身の気になった技術への追求も留まることを知りません。 そこで、社内のエンジニアに“好きな技術”について、思う存分に語ってもらうシリーズを始めました。 ルールはこの通り。 業務で使っている技術でも、使われていない技術でもOK あくまでも個人的な見解で その技術のどこが面白いのか 愛を込めて語り尽くしてもらう 第4回目は、新規プロダクトを目下開発しているSREグループの神谷に、「WebAssembly」の魅力をたっぷり語ってもらいました。 神谷 元太 開発本部 CTO室 SREグループ 2018年4月、株式会社ミクシィに新卒入社。モンスターストライクにてサーバーサイド、インフラの開発を経験したのち、現在は新規事業にてサ

                                        出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか~MIXIエンジニアが語る技術愛~
                                      • 「Java」は遅い言語ではなかった? 「C++」との違いを比較

                                        関連キーワード Java | プログラミング 「『Java』は遅い?」 これは、プログラムのパフォーマンスをこぞって向上させようとする開発者の間でよく聞かれる質問だ。2019年9月開催の開発者向けカンファレンス「Oracle Code One 2019」でも、Java関連の「Birds of a Feather」(BOF)セッション(特定のテーマに関するインフォーマルのミーティング)において、このトピックが取り上げられた。 この質問に対して「いいえ、Javaは遅くない」と答える人も少なからずいる。実際、他のプログラミング言語と比べても、Javaの処理速度は決して遅くない。Javaが採用している、実行時にプログラムをコンパイルする「JIT(Just-in-Time)コンパイラ」(「実行時コンパイラ」とも)のメモリ管理方法やアーキテクチャが、功を奏しているためだ。 併せて読みたいお薦め記事 J

                                          「Java」は遅い言語ではなかった? 「C++」との違いを比較
                                        • プログラミング言語「C」と「UNIX」の“深過ぎる関係”とは? 歴史を振り返る

                                          関連キーワード アプリケーション開発 | プログラミング 「Java」「Python」「Ruby」など他のプログラミング言語が台頭する時代になっても、プログラミング言語「C」が開発者にとって重要なことは変わらない。誕生以来、世界中の開発者が、Cやその派生言語「C#」「C++」「Objective-C」でアプリケーションを開発し続けている。 本連載はCの歴史と、アプリケーション開発におけるCの役割の変遷を振り返る。歴史を学ぶことで、Cやその派生言語が、組み込みシステムの制御やデータ処理といったプロジェクトに役立つ理由を理解しやすくなる。 CとUNIXの“ただならぬ関係”とは? 併せて読みたいお薦め記事 Cの関連言語 プログラミング言語「C++」が嫌われる理由と、それでも使われ続ける理由 C#が「使えるプログラミング言語」になったのは“あれ”のおかげ? いまさら聞けない「Objective-C

                                            プログラミング言語「C」と「UNIX」の“深過ぎる関係”とは? 歴史を振り返る
                                          • CPU+コンパイラ自作ワークショップを開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ

                                            サイボウズ・ラボの内田(uchan)です。 先日「CPU+コンパイラ自作ワークショップ」というイベントを開催しましたので、その報告をします。 イベントの概要 2022 年 4 月 29 日、FPGA ボードを用いたオリジナルの CPU と、CPU 用の機械語を生成するための C コンパイラを自作するという趣旨の「CPU+コンパイラ自作ワークショップ」を開催しました。 10 名の参加枠が募集開始 40 分で埋まるという人気ぶりで、当日はみなさんとても楽しそうに作業されていました。 作った CPU 基板はこんなものです。 Tang Nano 9K という FPGA ボードに CPU 内部の値を表示するための LED 表示器やスイッチを接続するための基板となっています。 USB シリアル変換基板を取り付けることで、パソコンと CPU が通信し、機械語をダウンロードしたり演算結果を出力することがで

                                              CPU+コンパイラ自作ワークショップを開催しました - Cybozu Inside Out | サイボウズエンジニアのブログ
                                            • ディジタル回路 第1回 ガイダンス、CMOSの基本回路

                                              計算機構成 第5回 RISCの命令セットアーキテクチャ 情報工学科 天野英晴 1 A B Y S 2 … we=0 clk clk com … PC + 1 clk 命令メモリ 命令 利点:単純、オペランドが1つ 欠点:レジスタが1つで不便 メモリへのポインタができない → 他の命令セットへ 1010 00000000 6 0 --- 7 0 2 3 1 en=0 =0? Dec. 00000000 operand 1010 アキュムレータマシン アキュムレータマシンは、オペランドが1つしかなく、構造も簡単ですが、 欠点があります。このままではメモリに対するポインタができないので、配 列もポインタも実現できません。このため、アキュムレータマシンとはいっ てもアキュムレータだけではなく、メモリに対するポインタ用のレジスタを 持っていました。これをインデックスレジスタと呼びます。インデックスレ

                                              • 44年の名古屋市職員プログラマを辞して - Qiita

                                                Help us understand the problem. What is going on with this article? 2020年3月31日を持ちまして、44年間勤務していた名古屋市職員を辞しました。(正式名称は解職) 本来業務である企業の技術者の方との共同研究をはじめ、 名古屋市職員のパソコン研究の教科書の作成、 愛知工業大学と大同大学の学生の卒業研究の指導合計二十年、 十年間に渡る岐阜大学の大学院の非常勤講師としての集中講義などを担当させていただきました。 仮説・検証(139)新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的 https://qiita.com/kaizen_nagoya/items/db993b1536055029f7c8 仮説・検証(52)プログラミング言語教育のXYZ https://qiita.com/kaizen_nagoy

                                                  44年の名古屋市職員プログラマを辞して - Qiita
                                                • RISC-V(リスク・ファイブ)について学ぶ意義 - Qiita

                                                  はじめに RISC-V(リスク・ファイブ) というインストラクション・セット・アーキテクチャ(ISA)は,知る人ぞ知るという感じで,最近急速に注目を集めています。え,聞いたことないですか? そうですか。。。 ISA といえばx86とかARMとかが有名で,これらがデファクトスタンダード(事実上の標準)みたいな感じになっている中で,なぜ RISC-V なんていう,聞いたこともないようなISA について,わざわざこれから学ぶ必要があるんでしょう? 実は,私,RISC-Vの噂を聞きつけて,RISC-V原典を読んで,軽く感動を覚えたんですよね! この記事では私がなぜ RISC-V に対して感動を覚えたのかについて紹介することで,RISC-Vについて学ぶ意義について語ってみたいと思います。 感動理由その1: なぜこのように設計したのか,理由や意図が明示されているから RISC-V原典を読んでいくと,設

                                                    RISC-V(リスク・ファイブ)について学ぶ意義 - Qiita
                                                  • Pythonはどんな仕組みで動くのか、まずはハードウエアを深く知ろう

                                                    プログラミング言語「Python」の処理系は、様々な仕組みを利用して動いている。この特集では、Pythonがプログラムを実行する仕組みを解き明かしていく。 皆さんが日々使っているPythonが、どのような仕組みで動いているのか、興味はありませんか? この特集では、Pythonがプログラムを実行する仕組みを解説します。具体的には、次のような概念や仕組みを説明します。 機械語 アセンブリ言語 コンパイラ インタプリタ 字句解析 構文解析 AST(抽象構文木) バイトコード 仮想マシン スタックマシン これらを理解するために、まずはコンピュータがプログラムを動かす仕組みの解説から始めます。 コンピュータがプログラムを動かす仕組み パソコンやスマートフォン、ゲーム機といったコンピュータは、いろいろなハードウエアで構成されています。その中で、プログラムの実行に特に関係が深いのは、CPU、メモリー、ス

                                                      Pythonはどんな仕組みで動くのか、まずはハードウエアを深く知ろう
                                                    • プロデルから見た日本語プログラミング言語の歴史 - Qiita

                                                      この記事は、プロデル公式ブログに掲載したコラムを編集して再投稿したものです。 日本語プログラミング言語の歴史 今回は、日本語プログラミング言語の歴史をまとめてみたいと思います。 「プログラムを日本語で書く」という試みは、40年ほど前から様々な人が取り組んでいました。パソコンが大衆に普及する前から情報処理系の学会誌や専門誌などには「日本語プログラミング言語」という言葉は載っており、実際に動作する実装も存在していました。 意外かもしれませんが、日本語プログラミング言語として言われている言語は名前だけならかなり多数あります。その中でも、その時々で有名なプログラミング言語がありますが、日本語プログラミング言語を使う人が少数で情報も少ないこともあり、全部を知っている人は、いないと思います。私もその一人です。 今回は、多分に含む主観的な感想や自分語りも含めて、プロデルを使う私たちの視点から見た日本語プ

                                                        プロデルから見た日本語プログラミング言語の歴史 - Qiita
                                                      • 《日経Robotics》ラズパイGPUで深層学習推論を高速化、異色の精鋭集団Idein(後編)

                                                        この記事は日経Robotics 有料購読者向けの過去記事の再掲載ですが 『日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。 ラズパイ(Raspberry Pi)の全機種に、初代Xbox並みの処理性能を持ったGPUが標準搭載されているのをご存じだろうか。このラズパイのGPUを使って、ディープラーニング推論を劇的に高速化する技術を開発したのが、日本のAIベンチャー、Idein(イデイン)だ。同社の創業経緯を紹介した前編に続き、後編では、同社がいかにしてラズパイGPUでの高速化を実現したか、技術の詳細を解説する。 ラズパイ全機種に標準搭載されているGPU「VideoCore」のリファレンスマニュアルをチップ製造元の米Broadcom社が公開していたとはいえ、ソフト開発ツールなどについてはBroadcom社は一切提供していない。そんな中

                                                          《日経Robotics》ラズパイGPUで深層学習推論を高速化、異色の精鋭集団Idein(後編)
                                                        • C言語がコンパイル~実行されるまで

                                                          記事の内容以下のソースコードがコンパイル~実行されるまでに、何が行われるのかを理解する。 細かいオプションや処理の詳細は追わない。 #include <stdio.h> #define MESSAGE "hello world\n" int main(int argc, char *argv[]) { printf(MESSAGE); return 0; } 検証環境]$ uname -rm 3.10.0-957.10.1.el7.x86_64 x86_64 ]$ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditi

                                                            C言語がコンパイル~実行されるまで
                                                          • エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine

                                                            私について はじめに 筆者の開発したエミュレーターについて 開発のススメ はりぼてOSとは? プロテクトモード突入するための、16bitモード実装 その前に 少し具体的な話 実装についての話 コード vram コード セグメンテーション far-jump命令 メモリチェックルーチン LGDT、GDTR IN命令 PortIO 割り込み・PIC 1 input output (IO) 1.1 画面出力 1.3 キーボード 1.2 マウス 10 Tips 10.1 デバック デバック方法 筆者がつまずいた点 ※この記事は、どんどん書き換えていきます。つまり、まだ途中です。 私について 私は、@warugaki_k_kと申します。 はじめに この記事は、はりぼてOSが動くi386 PCエミュレータの作り方の解説記事です。ただし、「OtakuAssembly vol.1」@OtakuAssembl

                                                              エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine
                                                            • リバースエンジニアリングツール新時代?!-Ghidraのお話-

                                                              2019/05/30 コース:こってり リバースエンジニアリングツール新時代?!-Ghidraのお話- みなさんこんにちは(&はじめまして)、ねこざめです。 先日、隣の席の先輩に誘われ、立川の方に荒野をかの隼で飛び回る作品の上映会&トークショーを見てきました。 隼のカッコよさにしびれたついでに、 例のサメを買って帰ったので、最近はリプレイをサメと一緒に見ながら、隼に乗って飛び回りたいとか考えていたりいなかったりします。このオタクはちょろいのでは? やっぱり、かっこいいというのは人生でもセキュリティでも大事な要素だと思いますね。 さて今回は、かっこいいものつながりで、プロジェクトページが黒基調の画面にドラゴンの組み合わせという、オタクの中二心を最高にくすぐる感じの、リバースエンジニアリングツール「Ghidra」のお話です。 実は、以前のブログ(「難読化の話(超!?入門編)その3 中編」)の中

                                                                リバースエンジニアリングツール新時代?!-Ghidraのお話-
                                                              • FM TOWNSのコアな話題が他のレトロPCより出ない理由 - 人生に疲れた男のblog

                                                                1989年に富士通が発売したCD-ROMドライブ&32bit CPU標準搭載パソコン「FM TOWNS」 今更25年以上前にシリーズ機の販売が終了したパソコンなんだから話題が出ない(Lenovo傘下になった富士通ブランド広報担当者すらFMVシリーズ機扱いしたりどういったパソコンだったかわかってない)のは当たり前なんだけど、1992年頃には商用としては終了しているMSXや当時は比較されることが多かったX68000が一部コミュニティで活発な動きが現在でもあるのに比べて、TOWNSは本当に話題に上がることがない。 そしてつい最近「どうしてFM TOWNSには勝手移植や自作ゲーム類が出てこないのか」という意見が某大手SNSで言及されていった。 自分自身はFM TOWNSに特別な思い入れもあってなんの役にも立たないが色々書いているし、かなり規模は小さく数えられるほどの物しか出てきていないとはいえ今で

                                                                  FM TOWNSのコアな話題が他のレトロPCより出ない理由 - 人生に疲れた男のblog
                                                                • 【Rust入門】魅力とはじめ方 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                  Rust入門 こんにちは高照です。 今回はここ数年で急成長を遂げたRustというプログラミング言語を勉強しましたので記事にしました。 本記事ではRustについての解説とプログラミングのはじめ方、基本的なプログラムの記法をまとめます。 Rust入門 Rustとは Rustの魅力 環境構築 プロジェクトの作成とHello, World! コーディング 最後に Rustとは RustはMozilla社が支援するオープンソースのプログラミング言語です。 また、2016〜2019年でStack Overflow Developer Surveyで「最も愛されているプログラミング言語」で一位を獲得し続けていた言語で初めにも記述したように急成長を遂げました。しかしながら、学習難易度が高い言語とも言われていて今後の学習のしやすさが課題となってきます。 Rustの魅力 Rustの魅力的なポイントとして以下の

                                                                    【Rust入門】魅力とはじめ方 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                  • ドミニク・チェンって何者だ? 『未来をつくる言葉:わかりあえなさをつなぐために』 - HONZ

                                                                    この本、HONZの、そして新潮社の編集者でもある足立真穂から送られてきた。ドミニク・チェン、最近、ときどき目にする名前だが予備知識はまったくない。「ドミニク・チェンって何者なん?」とメッセージを送ったら、「それを聞かれるので書いてもらった一冊です」と返事が来た。さすが敏腕編集者、あざといことを言う。 そして読んだ。ドミニク・チェンが何者かがわかったかと尋ねられると、返事に窮してしまう。もちろん、その経歴や仕事、考えなどについてはある程度知ることができた。しかし、本当にわかったかといわれると、そうとは答えにくい。 コミュニケーションとは、わかりあうためのものではなく、わかりあえなさを互いに受け止め、それでもなお共に在ることを受け容れるための技法である。「完全なる翻訳」などというものが不可能であると同じように、わたしたちは互いに完全にわかりあうことできない。それでも、わかりあえなさをつなぐこと

                                                                      ドミニク・チェンって何者だ? 『未来をつくる言葉:わかりあえなさをつなぐために』 - HONZ
                                                                    • Crystal (プログラミング言語) - Wikipedia

                                                                      Crystal (クリスタル)は、オブジェクト指向の汎用プログラミング言語である。静的型付けのコンパイラ言語であり、Rubyの影響を受けた構文となっている[6]。型推論によって変数や仮引数の型の宣言を省略することができる[6]。Crystalの開発は活発に行われており、Apache License 2.0の下でフリーかつオープンソースのソフトウェアとして配布されている[5]。 歴史[編集] Crystalの開発は、Rubyの特徴である優雅さと生産性の高さ、コンパイラ言語の特徴である実行速度の速さと効率の良さと型安全を目的として、2011年6月に開始された[7]。最初の頃はJoyという名称であったが、これはすぐに現在の名称に改名された[7]。 初期の頃はRubyによってコンパイラは書かれていたが、後にCrystal自身で書き直され、2013年11月にセルフホスティングへ移行した[8]。最初の

                                                                        Crystal (プログラミング言語) - Wikipedia
                                                                      • Erlang/OTP の JIT 実装 BeamAsm が公開されました

                                                                        注意: 著者は JIT について「実行時に機械語を生成する」くらいの知識しかありません。間違いなどあったらコメントで教えて下さい。 2020 年 9 月 10–11 日に行われた Code BEAM STO にて、Erlang VM コアコミッターの Lukas Larsson 氏が発表中に Erlang/OTP の JIT 実装である BeamAsm のプルリクエストを送りました。

                                                                        • マイナンバーカードの仕組みはどうなっている? RustでAndroidアプリを作ってみて分かったこと【デブスト2021】

                                                                          マイナンバーカードの仕組みはどうなっている? RustでAndroidアプリを作ってみて分かったこと【デブスト2021】 【B-3】Rustでマイナンバーカードを操作するスマホアプリを作りたい話 Rustでマイナンバーカードを操作するAndroidアプリを作る マイナンバーカードでデジタル署名ができることを知り、池口氏は作ってみたいスマホアプリの着想を得た。シンプルなAndroidアプリで、署名したいメッセージと利用者証明用鍵の暗証番号を入力し、マイナンバーカードをスマホにかざして署名したり、署名を確認したりできるというものだ。池口氏は「せっかくなら流行の技術を採り入れたい。このイベントはU30であることからも 、若い技術を使いたい。そこでRustを使うことにしました」と言う。 アプリのイメージ ちなみに今回のアプリ開発はゆめみの10%ルールにて行った。同社では業務時間の10%を研究開発や

                                                                            マイナンバーカードの仕組みはどうなっている? RustでAndroidアプリを作ってみて分かったこと【デブスト2021】
                                                                          • Pythonが実行される仕組みについて雑多に調べてみた - Qiita

                                                                            Pythonはシェルスクリプトの延長くらいにしか使ってきてなかったのだけれど、最近もう少しちゃんとした用途で使う機会が増えてきた。そうなると、低レイヤ好きの人間としてはPythonがどのように実行されているのか気になってきた。 なので雑多につまみ食いしてみた。 Pythonの実装 言語の仕様と実装は別モノであるという話。 Pythonという言語はひとつだけれど、その言語の機能を実現するための方法はひとつではない。CPythonとかPyPyとか、こいつらはPythonという言語の、実装に対する呼称だ。C言語とかで言えばコンパイラにGCCとかClangが選べますみたいなところかな。 Pythonの実装の種類についてはPythonのWikipediaとかを見ればいいと思う。結構いろいろある。 で、いろいろな実装がある中でもCPythonがいわゆるリファレンス実装で、Pythonの原作者が実装して

                                                                              Pythonが実行される仕組みについて雑多に調べてみた - Qiita
                                                                            • 【iOS】Xcodeのビルドの仕組みを知り、ビルド時間を短縮する方法を探る - Qiita

                                                                              「Xcodeのビルドに時間がかかる!」 「なんか急に遅くなった?」 私はこう感じることがよくあります。 かつては 早く終わらないかなと思いつつ 他の作業をしながらただただ待っていました。 その後 色々と調べて改善する方法を少しは知ることができましたが そもそもXcodeのビルドの仕組みを知らず 根本的に何が問題になっているのかがわかっていませんでした。 そこで 今回は Xcodeがビルドの仕組みや ビルド時間を短縮するための方法などを いくつか見ていきたいと思います。 Xcodeのビルドの流れ Xcodeは下記の図のようにビルドを行います。 それぞれ何をしているのかを簡単に見ていきます。 PreProcessor Compilerへプログラムを送り込めるように変換 マクロをそれぞれの定義へ置換 依存関係の発見 PreProcessorのディレクティブ(#if DEBUGなど)を解決 Com

                                                                                【iOS】Xcodeのビルドの仕組みを知り、ビルド時間を短縮する方法を探る - Qiita
                                                                              • RISC-V入門

                                                                                RISC-V アプリケーションを開発する際に「どのOSで動かすか」を意識するのと同じように、OSもその下のレイヤであるハードウェア (特にCPU) で動かすかを考える必要があります。本書では、RISC-V (リスク・ファイブ) を次の理由から選択しました。 仕様がシンプルで初学者向きである。 近年よく話題に上がるCPU (命令セットアーキテクチャ) である。 仕様書でところどころ述べられている「なぜこの設計にしたのか」の説明が面白く、勉強になる。 なお、本書では32ビットのRISC-Vを利用します。64ビットでも大体同じように実装できるのですが、ビット幅が広い分複雑になるのと、アドレスが長く読むのが億劫なので、最初は32ビットがおすすめです。 virtマシン コンピュータはCPUだけではなく、メモリをはじめとする様々なデバイスから構成されています。例えば、iPhoneとRaspberry

                                                                                  RISC-V入門
                                                                                • Valgrindでコード解析してみる - CADDi Tech Blog

                                                                                  はじめに テオ。弾薬が尽きた。このまま突入する、さらばだ。ヴァルハラで会おう。Wir sehen uns in Walhalla! これは第二次世界大戦時のドイツ空軍のエースパイロット、ハインリヒ・エールラーの最後の言葉です。 北欧神話で戦死した人がラグナロク(終末の日)に備える場所とされるヴァルハラ。今日はそれにちなんで命名された解析ツールValgrindについて見ていきましょう。 申し遅れました。わたくしCADDiでコスト計算システムのバックエンドを担当している @kimu_di といいます。 こちらキャディAdvent Calendar 2020 17日目の記事となります。昨日は @yskeee000 の「KleinというProductについて」でした。 改めて、今回はValgrindという強力なコード解析・メモリデバッグツールについてお話します。 ここまで強力な解析ツールを使う必要

                                                                                    Valgrindでコード解析してみる - CADDi Tech Blog