並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 437件

新着順 人気順

機械語の検索結果121 - 160 件 / 437件

  • Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeの紹介 | フューチャー技術ブログ

    はじめにこんにちは、2021年新卒入社の本田です。私はJavaもSpring Bootもほとんど何も知らないのですが、業務でSpring Bootを使いそうなので、「Spring勉強しなきゃ😇」という気持ちがあります。 Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeについて調べてみたので、それを紹介します。 Spring Nativeとは?Spring NativeとはSpring Bootアプリケーションをほとんど変更することなく、ネイティブイメージを生成することを目指したプロジェクトです。ネイティブイメージの実行はJVM(Java仮想マシン)による実行と比べて、起動時間が早い、ピークパフォーマンスに達するのが早い、メモリの使用量が小さい等の利点を持っています。 Spring Nativeでは、Spring Bootアプリケーションの

      Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeの紹介 | フューチャー技術ブログ
    • プログラミング言語の歴史【訂正版作成予定】

      ミスの洗い出しの完了と私の知見が更新出来次第、訂正版を作成します。時間がかかるため、しばらく以下の訂正一覧を使用ください。 この動画も継続して公開いたします。タイトルとサムネイルで区別予定です。 みなさんからのご指摘、大変参考になっております!!多数の誤情報大変申し訳ございません🙇 ***訂正一覧*** (誤00:53)コンピュータの由来は計算機→(正)機械ではなく計算する人間を指す言葉 (誤03:04)ペリーの航路→(正)太平洋側からではなく,慣れたインド洋経由で来航した (誤04:57)ニイタカヤマノボレヒト「マルフタ」ハチ→(正)ヒト「フタマル」ハチ (誤05:15)チューリングマシン→(正)ボンベというマシンで解読。チューリングマシンは無関係。 (誤06:55)機械語のかたまり→(正)1つの機械語。ビット列 (誤07:05)ドイツの位置ズレ→(正)右上が正しいドイツ (誤07:

        プログラミング言語の歴史【訂正版作成予定】
      • 生成AIの議論を見てるとプログラミング環境の進化と近い話だなと思った

        すがやみつる先生が生成AIを使ったことでAIを憂う人たちから大量の質問が殺到する→質問に丁寧に返答、ベテラン漫画家が話す「模倣について」の考え方がためになる - Togetter 「紙とペンからデジタルへの変遷とAIでは次元が違う」みたいにAIは影響が凄すぎるみたいな話がよく出てくるけど プログラマってそういうの何回も体験してきてる プログラマにとって紙とペン時代は機械語やアセンブラだよな 俺は40代だから機械語やアセンブラ知らなくてもアプリが作れた世代だけど C言語やVBが出た時には機械語やアセンブラやってた人の技術が必要無くなってアプリを作る速度でも負けることになった 開発環境でも秀丸っていうただのテキストエディタで開発していた時代があったけど 統合開発ツールとか出てきてデバッグできたり補完が働いたりして秀丸使いは廃れた 自分がプログラマになってからも幾度となく新しい言語が発表されたり

          生成AIの議論を見てるとプログラミング環境の進化と近い話だなと思った
        • gist:3ef8747868ac126c30f94888425eb56d

          gistfile1.md yjit についてメモ書き MRI に組み込まれた JIT 実装 Shopify で Maxime Chevalier-Boisvert さんが中心となり開発された 日本語だと https://techracho.bpsinc.jp/hachi8833/2021_11_02/112909 が詳しい めちゃ速い $ for opt in '' '--jit' '--yjit'; do echo "opt": $opt; time ./miniruby $opt -e 'def fib(n); return n if n < 2; fib(n - 1) + fib(n-2); end; fib(35)'; done opt: real 0m1.050s user 0m0.971s sys 0m0.036s opt: --jit real 0m0.755s user 0

            gist:3ef8747868ac126c30f94888425eb56d
          • 従来のPythonよりも高速化が可能な新たなプログラミング言語「Mojo」が開発される

            Appleのプログラミング言語「Swift」を生み出したクリス・ラットナー氏がCEOを務めるソフトウェア開発スタートアップのModularが、新たなプログラミング言語の「Mojo」を2023年5月3日に発表しました。Mojoはこれまでのプログラミング言語であるPythonの使用感とC言語並みの性能を合わせ持つ言語だとされています。 Mojo 🔥: Programming language for all of AI https://www.modular.com/mojo Modular Docs - Mojo🔥 https://docs.modular.com/mojo/ fast.ai - Mojo may be the biggest programming language advance in decades https://www.fast.ai/posts/2023-05

              従来のPythonよりも高速化が可能な新たなプログラミング言語「Mojo」が開発される
            • Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp

              RubyKaigi 2023 キーノートレポート Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート 最近のRubyインタプリタの進化において非常に重要なトピックの一つが、JITコンパイラの登場です。特にShopifyのJITコンパイラチームを中心に開発されたYJITは、世の中で広く使われているRailsアプリケーションを有意に高速化できるJITコンパイラとして、既にproduction-readyであると評価されており、各所で採用が進んでいます。 RubyKaigi 2023 2日目のMaxime Chevalier-Boisvertさんによるキーノートでは、開発チームがYJITを開発するにあたってどういったアプロ

                Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp
              • 情報理論のレンズを通して浮かび上がってくる生命像──『生物の中の悪魔 「情報」で生命の謎を解く』 - 基本読書

                生物の中の悪魔 「情報」で生命の謎を解く 作者: ポール・デイヴィス,水谷淳出版社/メーカー: SBクリエイティブ発売日: 2019/08/22メディア: 単行本この商品を含むブログを見るどのように生命が生まれたのか、というのは依然判明していない。地球や火星のような環境で有機物の発生シナリオ自体はいくつも存在するが、その真ん中に大きな断絶があって、どうしても生物にまでたどり着かない。本書『生物の中の悪魔 「情報」で生命の謎を解く』は、その書名に入っているように「情報」をキイとして生命を読み解こうとする試みについての一冊である。未だそれは単なる有機物と生命の間の断絶を埋めるには至っていないが、生命そのものの見方を大きく変える視点である。 情報が世界を実際に変える「起因」としてのパワーを持っていることを、科学者はようやく理解しはじめたばかりである。ごく最近になって、情報、エネルギー、熱、仕事を

                  情報理論のレンズを通して浮かび上がってくる生命像──『生物の中の悪魔 「情報」で生命の謎を解く』 - 基本読書
                • ChromiumでないEdgeは消えるが、IEはまだまだ無くならない (1/2)

                  Microsoft 365がIEサポートを終了するだけで IE自体のサポートが終了されるわけではない 先週、「IE終了」的な話題がいくつか出た。実際には、MicrosoftがMicrosoft 365(昔のOffice 365)でのサポートを止めるという話であって、実際には、IE11はWindows 10に同梱されているし、これからも入っているはずである。まあ、あと5年は現役でしょう。 元のブログ投稿はこちら。 ●Microsoft 365 apps say farewell to Internet Explorer 11 and Windows 10 sunsets Microsoft Edge Legacy https://techcommunity.microsoft.com/t5/microsoft-365-blog/microsoft-365-apps-say-farewell-

                    ChromiumでないEdgeは消えるが、IEはまだまだ無くならない (1/2)
                  • Ruby 3.3.0+YJIT本番運用カンパニーになりました - Timee Product Team Blog

                    こんにちは。バックエンドエンジニアの須貝(@sugaishun)です。 今回はタイミーが本番運用しているRailsアプリケーションに対してRuby3.3.0へのアップデートを行った(YJITは引き続き有効なまま)のでその結果をご紹介したいと思います。 昨年弊社のid:euglena1215が書いたエントリーのRuby3.3.0版です。 tech.timee.co.jp 前提 タイミーのWebアプリケーションとしての特性は基本的には昨年と変わりありません。ですので、昨年の内容をそのまま引用させてもらいます。 タイミーを支えるバックエンドの Web API は多くのケースで Ruby の実行よりも DB がボトルネックの一般的な Rails アプリケーションです。JSON への serialize は active_model_serializers を利用しています。 今回の集計では API

                      Ruby 3.3.0+YJIT本番運用カンパニーになりました - Timee Product Team Blog
                    • セキュリティ完全初心者がCTF入門して半月が経ちました - ぴーよメモ

                      記事を開いてくださったみなさんようこそ。 ぴーよです(*- -)(*_ _)ペコリ 年末年始にかけて異様になぜかモチベーションが高くて勢いで前から気になっていたCTFを始めてしまいました。 初心者だった時の気持ちは脱初心者すると忘れてしまうとよく聞くので、覚えているうちにわかったこととか参考にしたものとかを時系列順でまとめておこうと思います。 CTFとは おそらくこの記事を目にしている方の大半は知っていると思いますが一応。 CTFは"Capture The Flag"の略で、『与えられた問題からFlag(旗)をゲットすることを目的とした競技です』みたいなことがググると出てきます。 旗ってなに.....??? 旗っていうのはほんとに旗があるわけじゃなくて、決まった形の答えの文字列*1がいろんな方法で隠されててそれを旗と呼ぶっぽいです。 例えば"FLAG{~}"みたいな形式の文字列がどこかに隠

                        セキュリティ完全初心者がCTF入門して半月が経ちました - ぴーよメモ
                      • LEGOの説明書を読んで組み立てるAI、米スタンフォード大などが開発 家具やMinecraftでも応用可能

                        Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。 米スタンフォード大学と米MIT(Massachusetts Institute of Technology)、米Autodesk AI Labの研究チームが開発した「Translating a Visual LEGO Manual to a Machine-Executable Plan」は、LEGOの組み立て説明書(画像ベースのステップバイステップの組み立てマニュアル)をロボットでも理解できる機械語に変換する学習ベースのモデルだ。 LEGOの組み立て説明書は、人間が見て組み立てられるように1つ1つの手順が順番通りに記されており、本もしくはPDFなどで提供されている。コンピュータビジョンが

                          LEGOの説明書を読んで組み立てるAI、米スタンフォード大などが開発 家具やMinecraftでも応用可能
                        • 及川卓也「仮説はことごとく外れた」それでもブレずに開発できる理由は?【後編】 - エンジニアtype | 転職type

                          2024.04.08 働き方 及川卓也PdMプログラミングプロダクト 前編に続いて及川卓也さんにプログラミング初学者向けの学習サービス『Jasmine Tea』のこの1年を聞く。リリースからちょうど1年が経った『Jasmine Tea』だが「実は思っていたよりうまくいっていない」のだという。未知の挑戦に課題はつきものではある。及川さんらはどんな課題にぶつかり、それとどう向き合っているのだろうか。 事前に立てた仮説のことごとくが外れたこと、それでもブレずに開発を続けられている理由、少し脇道に逸れて、生成AI時代のエンジニアに必要なことも伺った。 Tably株式会社 代表取締役 Technology Enabler 及川 卓也さん(@takoratta) 早稲田大学理工学部卒業、日本DECを経てMicrosoftに転職。Windowsの開発に携わり、その後Googleではプロダクトマネジメント

                            及川卓也「仮説はことごとく外れた」それでもブレずに開発できる理由は?【後編】 - エンジニアtype | 転職type
                          • DeepMindが深層強化学習を利用してアルゴリズムを改善するAI「AlphaDev」を発表、すでにソートアルゴリズムやハッシュ関数の高速化に成功

                            AlphaGoの開発元として有名なGoogle DeepMind社が深層強化学習を応用してさまざまなコンピューティングアルゴリズムを改善するAI「AlphaDev」を発表しました。同時に、AlphaDevを利用してソートアルゴリズムを高速化できたという論文がNatureに掲載されています。 AlphaDev discovers faster sorting algorithms https://www.deepmind.com/blog/alphadev-discovers-faster-sorting-algorithms Faster sorting algorithms discovered using deep reinforcement learning | Nature https://doi.org/10.1038/s41586-023-06004-9 ソートアルゴリズムとは

                              DeepMindが深層強化学習を利用してアルゴリズムを改善するAI「AlphaDev」を発表、すでにソートアルゴリズムやハッシュ関数の高速化に成功
                            • 【サンプル有】C言語とは?特徴やできることなどを解説! | IT・エンジニア派遣のModis

                              C言語は歴史が古く、プログラミング言語の中でも非常に知名度の高い言語の一つです。また、C系言語と呼ばれる派生言語の始祖でもあり、コンピュータを使用して行うことの大半はC言語で実行できるといわれるほど高い汎用性を持っています。プログラムの自由度が非常に高く、アプリの開発から機械制御まで幅広い分野で活用されている点が特徴です。 C言語はハードウェアの制御知識を必要とする面があるため、初心者にはハードルの高い言語ではありますが、その汎用性の高さからいまだ衰えない需要と人気があります。今回はC言語の概要や特徴、基礎知識とサンプルを解説していきます。 C言語とは? C言語の歴史 C言語は、AT&Tベル研究所のケン・トンプソン氏が開発したB言語の改良として、同所のデニス・リッチー氏が主体となって開発した汎用プログラミング言語です。 UNIX(ユニックス)(コンピュータ用のマルチタスク・マルチユーザーの

                                【サンプル有】C言語とは?特徴やできることなどを解説! | IT・エンジニア派遣のModis
                              • 組み込みエンジニアは何故やめとけと言われるのか?実はおすすめな理由と将来性を解説

                                組み込みエンジニアはやめとけは本当?インターネット上や現役のエンジニアから、組み込みエンジニアはやめとけ、という声を聞いたことがある方は多いと思います。数あるエンジニア職種の中でも難易度が高い業務内容であることは確かに事実です。しかし、だからといって本当に避けるべきなのでしょうか。 本記事では、組み込みエンジニアの仕事内容、市場価値、年収にフォーカスし、なぜやめとけと言われるのかという理由とそれでもおすすめできる理由を解説していきます。 組み込みエンジニアに将来性はあるまず結論から言うと、組み込みエンジニアには将来性があり、エンジニア本人の適性が合えば、非常におすすめできる職種であると言えます。その理由について詳しくは後述しますが、市場価値が非常に高まってきていることが挙げられます。 IoT、DXが活況な現在のエンジニア市場では、エッジデバイスをはじめとした組み込みハードウェアの需要が急激

                                  組み込みエンジニアは何故やめとけと言われるのか?実はおすすめな理由と将来性を解説
                                • kateinoigakukunがプログラムに興味を持ったきっかけ、Wasmとの出会い。深掘りRubyKaigi 2022 with ko1 & kateinoigakukun 文字起こしレポートvol.1 - STORES Product Blog

                                  2022年10月5日に『深掘りRubyKaigi 2022 with ko1 & kateinoigakukun ~ RubyKaigiどうでした&RubyのWASI/並列どうなるの? ~』を開催しました。イベントでお話した内容を3部作でお届けします。 自己紹介 fujimura:皆様、今日はお集まりいただきありがとうございます。今日はゲストにkateinoigakukunさんと、笹田さんをお迎えしております。プログラムとしては、前半でkateiさんにWasmの話を聞いて、後半に笹田さんに並列並行のところを聞くというようなコンテンツでやっていきます。 さっそく始めていこうと思うのですが、僕らの自己紹介と、kateiさんの自己紹介から始めようかな。僕は STORES でCTOをやってる藤村と申します。RubyKaigiもリアルで参加して、非常に楽しかったです。じゃあ、hogelogさん。 h

                                    kateinoigakukunがプログラムに興味を持ったきっかけ、Wasmとの出会い。深掘りRubyKaigi 2022 with ko1 & kateinoigakukun 文字起こしレポートvol.1 - STORES Product Blog
                                  • ポスト・コーディング

                                    最近、コンテンポラリー・ダンスのコリオグラファー(振付家と書くと意味合いが変わってしまうので英語の Choreographer を用いる)であるマーテン・スパングバーグ (Mårten Spångberg) の文章やレクチャーを追っている。スパングバーグのことは2016年にウィーンで作品を見て、また知り合いから話を聞いていたので人となりもなんとなく知っていたが、ガーディアン紙に「コンテンポラリー・ダンス界の悪童」と書かれるように議論を巻き起こしながらもヨーロッパを中心に高い評価を得ている。著書「ポスト・ダンス」の中でコリオグラフィがダンスを生むという考え方から脱却しそれぞれを切り離して考えるなど一見突拍子のない考え方を提案しているが、実際にはコンテンポラリー・ダンスの流れを汲んで深く分析をしている。 コンテンポラリー・ダンスの界隈で話を聞いていると、「ダンスが嫌いだ」「一度ダンスをしないと

                                      ポスト・コーディング
                                    • プログラムというものが分からない

                                      以下、プログラミングは出来ない俺の認識が間違っている場所があったら教えて下さい。あと、疑問2つを教えて下さい。 【俺の認識】 1. コンピューター(というかCPU)が実行する命令は【機械語】で書かれている。たとえばx86CPUの場合、0x04ならば『imm8をALに加算する』命令、0x90ならば『何もしない』などである。 2. 流石に機械語のままでは人間がプログラムするには不便なので、機械語をそのまま人間にも意味が分かるように1対1対応で書き直した【アセンブラ言語】というのがある。0x04ならば『ADD AL, imm8 』、0x90ならば『NOP』と表記される。 3. アセンブラ言語のように機械語と1対1対応している言語を【低級言語/低水準言語】と言う(この呼び方、4で書く高級言語が出来てから生まれたレトロニムか?) 4. アセンブラのままでプログラムするのも困難である場合が多いので、機

                                        プログラムというものが分からない
                                      • チューリング賞、コンパイラ技術の開発に貢献した研究者2人に

                                        コンパイラと呼ばれる重要なソフトウェア開発ツールがなければ、コンピューターを制御するために、人間には理解が難しい機械語の世界まで降りていく必要が生じていたことだろう。この功績を称えて、高い権威を誇るチューリング賞の2020年の受賞者に、コンパイラの開発に貢献したAlfred Aho氏とJeffrey Ullman氏が選ばれた。 計算機学会(ACM)は毎年チューリング賞の受賞者を選出し、100万ドル(約1億1080万円)の賞金を授与している。ACMによると、コンパイラ技術の先駆けとなったUllman氏とAho氏の共同研究は、1967年にAT&Tの著名な研究施設であるベル研究所で始まった。 現在、Ullman氏はスタンフォード大学の名誉教授で、コンピューターサイエンス関連のeラーニング企業Gradianceで最高経営責任者(CEO)を務めている。Aho氏はコロンビア大学の名誉教授だ。

                                          チューリング賞、コンパイラ技術の開発に貢献した研究者2人に
                                        • 競技プログラミングの問題を自動で解きたい - うさぎ小屋

                                          TL;DR 問い「競技プログラミングの問題は自動で解けるか?」 答え「ある程度は自動で解けるだろう。ただし問題の形式化を人間に任せる必要はある」 問い’「競技プログラミングの問題を自動で解くソルバは、具体的にはどのような形になるか?」 答え’「少なくとも初期のソルバは、最適化付きのトランスパイラと呼ばれるものになるだろう」 このような議論に従い、競技プログラミングの問題の実用的なソルバとして、Python から C++ への最適化付きトランスパイラを開発している。 目次 TL;DR 目次 競技プログラミングの問題を解くとはどういうことか 競技プログラミングのソルバは形式化を人間に任せることになるだろう 競技プログラミングの問題を自動で解くことは不可能ではない 具体例 1 具体例 2 競技プログラミングのソルバは (初めは) トランスパイラの形がよいだろう 競技プログラミングのソルバは (近

                                          • ロックフリーアルゴリズムによるFIFOバッファ - Qiita

                                            はじめに 私が組み込みプログラミングを始めたころ(まだインターネットもなく組み込みマイコンもAKI-80とかZ80系主流で遊んでいた時代)に大学の先輩に教えてもらったテクニックです。今どきのCPU向けではないですが、私自身が古典的かつ重要な要素が含まれており、組み込みプログラミングに引き込まれたきっかけの一つでもありますので、当時を思い出しつつ記事にしてみます。 「ロックフリーなアルゴリズム」についてはこちらのWikipediaの記事がわかりやすいです。 これらのアルゴリズムは、割り込み禁止やミューテックスなどのロックを用いずに、割り込みハンドラやマルチタスク/マルチスレッドなどの異なる非同期な実行コンテキスト間で情報を渡すことを目的としており、今回はその応用内でのFIFOバッファの構成例となります。 近年ではArduinoなどの組み込みプログラミングも手軽に行える環境が増えています。また

                                              ロックフリーアルゴリズムによるFIFOバッファ - Qiita
                                            • Goの勉強会はじめました - Kyash Product Blog

                                              Goの社内勉強会はじめました はじめに Kyashの @uncle__ko です。 普段はTechチームの生産力向上のためにfourkeys基盤の構築や、リアーキテクチャ含めた技術的負債の解消などを行っております。 僕のやっている仕事については記事を書いてるので、興味があれば見ていただけると幸いです。 blog.kyash.co 今回は社内でGo言語の勉強会をはじめてみたので、そのことについて書こうと思います。 KyashとGo KyashのServerSideは基本的にGoで書かれています。 一部Pythonを使っていたりScalaを使っていたりしますが、9割以上はGoで書かれています。 ですのでKyashのServerSideエンジニアとして働く以上は絶対にGoと関わることになりますし、勉強は避けては通れない道です。 KyashがGoを採用している理由はいくつかありますが、主に以下のよ

                                                Goの勉強会はじめました - Kyash Product Blog
                                              • Rustプログラム解析入門

                                                この記事は、KMCアドベントカレンダー2022の3日目(12/3)の記事です。(執筆時点で10日の大遅刻。ごめんなさい!) 2日目の記事はkypさんの「2022年のNuitaにやったこと」です。 4日目の記事はwassさんの「ショートカットでコマンドを入力すると、どんな環境でもそこそこ便利になる」です。 この記事の対象読者 Rustやrustcに興味がある方 言語処理系, プログラム解析に興味がある方 はじめに 昨年夏にRustプログラムの解析方法について、KMC内でハンズオンを行いました。そこでRustプログラムの解析ツール minippy (GitHub) を自作し、参加者の方々にソースコードを改造して遊んでもらいました。この記事は、前半ではRustプログラムの解析方法について説明し、後半では解析ツール minippy のソースコードを解説します。 プログラムの解析とは? まず、プログ

                                                • GHCのバックエンドについて | 雑記帳

                                                  先日リリースされたGHC 9.2.1で、64ビットArm(AArch64)向けのネイティブコード生成器(Native Code Generator; NCG)が実装された。これを機会にGHCのバックエンドについて簡単にまとめてみる。 概略 GHCでHaskellプログラムをコンパイルすると、いくつかの中間言語を経て最終的には機械語が出力される。 この工程の最後の部分を「バックエンド」と呼ぶ。 GHCには Native Code Generator (-fasm)LLVM backend (-fllvm)unregisterised via-C backend の3種類のバックエンドが存在する。このほか、バイトコードインタープリターと-fno-codeもデータ型的にはバックエンドの一種として扱われている。(参照:compiler/GHC/Driver/Backend.hs) Native C

                                                  • KubeCon + CloudNativeCon Europe 2024 参加レポート - ZOZO TECH BLOG

                                                    はじめに こんにちは。SRE部フロントSREブロックの三品です。 3月19日から3月22日にかけてKubeCon + CloudNativeCon Europe 2024(以下、KubeCon EUと呼びます)が行われました。今回弊社からはZOZOTOWNのマイクロサービスや基盤に関わるエンジニア、推薦システムに関わるエンジニアの合わせて4人で参加しました。 本記事では現地の様子や弊社エンジニアが気になったセッションや現地の様子について紹介していきます。 目次 KubeConEU2024の概要 セッションの紹介 現地の様子 ブースについて 参加に向けてのTips 最後に KubeCon EU 2024の概要 昨年4月にオランダ アムステルダムで行われたKubeCon EUの様子については昨年の参加レポートをご覧ください。 techblog.zozo.com 今年のKubeCon EUはフラ

                                                      KubeCon + CloudNativeCon Europe 2024 参加レポート - ZOZO TECH BLOG
                                                    • Whitespaceのセルフホストコンパイラ作ったよ! | κeenのHappy Hacκing Blog

                                                      ハ〜イ、κeenさんだよー。Whitespaceのセルフホストコンパイラを作ったから紹介するねー。 Whitespace1ってのはあまり知名度がないけどこういう感じの言語。 見ての通りクリアな構文が売りの言語で、簡単に覚えられるのが特徴。 文法が綺麗だとパースも簡単だろうということで、セルフホストコンパイラを書いてみた。 こんな感じでコンパイラに自身のソースを食わせると完全に一致するバイナリを吐くよ。 $ whitelie < whitelie.ws > whitelie2 $ md5sum whitelie whitelie2 418b0b9a58caaa9e99a2d5e3649f6faf whitelie 418b0b9a58caaa9e99a2d5e3649f6faf whitelie2 一応注意点を挙げておくと、オリジナルの言語とは多少の非互換がある。一番大きいのは で、バイナリ

                                                        Whitespaceのセルフホストコンパイラ作ったよ! | κeenのHappy Hacκing Blog
                                                      • 高速なRUBY用仮想マシンの開発

                                                        博士論文本審査発表資料 高速なRUBY用仮想マシンの開発 EFFICIENT IMPLEMENTATION OF RUBY VIRTUAL MACHINE 東京大学大学院 情報理工学系研究科 特任助教 笹田耕一 1 Agenda 背景と目的 高速なRuby用仮想マシン Rubyの並列化 まとめ 2 背景 3 スクリプト言語の必要性の増大 � スクリプト言語の重要性増大 � 計算機の性能向上,スクリプト言語の機能向上 � 利用シーンの増加 � GUIプログラミング,ネットワークアプリケーション � ウェブアプリケーション � システムプログラミング言語 v.s. スクリプト言語 � John K. Ousterhout, Scripting: Higher-Level Programming for the 21st Century, Computer, IEEE, 1998 より � 型付

                                                        • 機械学習自体を学ぶな | AI専門ニュースメディア AINOW

                                                          著者のCaleb Kaiser氏は、転移学習を重視した機械学習開発プラットフォームCortexの開発に携わっており、AINOW翻訳記事『ディープラーニングはもう難しくない』の著者でもあります。同氏が最近Mediumに投稿した記事では、機械学習モデルの構築を学習するに際して、従来の方法を批判したうえで新しい学習方法が提案されています。 第3次AIブームが到来する前の2000年代後半までは、機械学習を学ぶ人は専ら大学研究者でした。こうした事情により、当時の機械学習の教科書は数学的理論の理解を重視したものとなっていました。理論重視の教科書作りはその後も引き継がれ、現在入手できる機械学習の教科書も初学者に理論から学ばせる傾向のものが少なくありません。 同氏は、機械学習を使って実用的なAIモデルを開発したいエンジニアにとっては、理論重視の教科書は学習の妨げになっていると批判します。エンジニアが習得す

                                                            機械学習自体を学ぶな | AI専門ニュースメディア AINOW
                                                          • WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)

                                                            以前は無法地帯だったWindowsにおけるアプリインストール 過去の本連載で、WindowsでのUWPアプリのインストール状態を調べる方法を解説したが(「Windows 10のUWPアプリのインストール状態をコマンドラインで調べる」)、Win32アプリケーション(デスクトップアプリケーション)のインストールに関してはどうだろうか? 少なくとも、コントロールパネルの「プログラムと機能」には、インストールされているアプリケーションのリストが表示されるのでどこかに情報が記録されていることは間違いない。また、現在では、Win32アプリケーションのインストールは、原則マイクロソフトインストーラーを使うことになっている。 コントロールパネルの「プログラムと機能」には、インストールされているWin32アプリケーションが表示される。つまり、Windowsはインストールされているアプリの情報をどこかに持って

                                                              WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
                                                            • 『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況

                                                              Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。hsjoihs氏は、『低レイヤを知りたい人のためのCコンパイラ作成入門』を用いた縛り実況、初見実況について発表しました。 縛り実況、初見実況と呼ばれるタイプのゲーム実況が大好き hsjoihs氏(以下、hsjoihs):プレゼンその2をやります。 プレゼンその2、「Rui Ueyama compiler book any% 縛り実況(C-to-ELF category)」というタイトルで発表をしたいと思います。自己紹介はさっきやったので飛ばします。 みなさん、ゲーム実況は好きですか? 私は、ゲーム実況が大好きです。ゲーム実況がきっかけで大学の進路が決まったぐらいには大好きです。 司会者:へぇ。 hsjoihs:その中でも特に好きなのが、縛り実況

                                                                『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況
                                                              • JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita

                                                                CRuby(3.2.0-preview3)およびCRubyの新しいJITコンパイラ・モジュールであるYJITを有効にした場合と、monoruby(JITあり・なし)の単位時間当たりの実行回数をbenchmark-driver.gem を用いて比較しています。数字が大きい方が速いです。ベンチマークの種類によりますが、YJITと比較しても高速、特に浮動小数点演算を多数実行するso_mandelbrotやso_nbody、app_aobenchでは数倍高速となっています。インタプリタもCRuby(JITなし)と遜色ない速度になっています。 以下、設計と実装について紹介していきますが、その前に必要な基礎知識をおさらいしておきます。 基礎知識 JITコンパイラは実行時に対象言語のプログラムを機械語へコンパイルするモジュールですが、一般的な実装ではインタプリタと並存して動きます。プログラムは抽象構文木

                                                                  JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
                                                                • FractalDB を作ってみよう(理論編) - ANDPAD Tech Blog

                                                                  はじめに どうも. terasaki です. 機械学習の PoC を黙々やっています. テックブログを書く当番がやってきました. どうしよっかな? 何かこうかな? 行っている業務や扱っているデータの性質上, やってることをなかなか社外にオープンに出せないし 面白いこと書きたいよね? 面白いってなんだろう? 白い犬は尻尾も白いはずだから面白いよね! と考えてるうちに社内で書いた下書きがいっぱいできてしまったのでそろそろ真面目に書くとします. 今回のトピックは FractalDB と呼ばれる幾何学模様の人工データを生成するロジックを Julia で書いたというお話です. 結果として既存のコードよりも高速に生成できたよって話です. 何を作ったの? IFS (反復関数系, Iterated Function System) による人工データを作っていました. 下記のようなフラクタル画像を生成するプ

                                                                    FractalDB を作ってみよう(理論編) - ANDPAD Tech Blog
                                                                  • リセットとフリーズで解析する電子辞書リバエン記 - Zopfcode

                                                                    諸行無常という言葉がある。常なるものはなく、何事も変化し続けるという意味だ。これは私にも、枯れたツールである電子辞書にも例外なく当てはまる。 1年と少し前、私は「電子辞書は組み込み Linux の夢を見るか?」という記事を公開した。 www.zopfco.de この記事を書いた時は独りだった私に、Brain Hackers という電子辞書ハックのコミュニティができた。これがまず最初の変化だった。 そしてそれから半年と経たない2021年2月、次なる変化が訪れた。SHARP Brain の新モデル、PW-x1 シリーズ*1が発売された時のことだ。この記事ではその PW-x1 シリーズの解析と、困難を突破して Linux の動作に至るまでの顛末をご紹介する。 (本記事は、Kernel/VM 探検隊 online part4 で発表した同タイトルのスライドを記事にしたものです。) speakerd

                                                                      リセットとフリーズで解析する電子辞書リバエン記 - Zopfcode
                                                                    • WebAssemblyとは - Qiita

                                                                      プログラミング言語やライブラリの名前ではなく、ブラウザでプログラムを高速実行するための、 「ブラウザ上で動くバイナリコードの新しいフォーマット(仕様)」 である。 Google, Microsoft, Mozzila, Appleによって仕様が策定され開発が進められている。 WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications. htt

                                                                        WebAssemblyとは - Qiita
                                                                      • 「Black Hatに採択される」という大きな目標を達成したセキュリティ研究者が次に目指したのは現場への貢献 - Findy Engineer Lab

                                                                        はじめまして、中島明日香(@AsuNa_jp)です! 私は14歳の頃にハッカーに憧れてセキュリティの世界に飛び込んで以来、セキュリティひと筋なキャリアを歩んできました。大学でセキュリティを学び、卒業後も研究開発者として10年以上さまざまなセキュリティの研究開発に携わってきました。 本記事では、私自身のキャリアの歩みについて紹介します。今までどのような仕事に携わってきたかだけでなく、大学卒業時の就職や一昨年に経験した転職など、キャリアの節目においてどのように考え、選択してきたのかについても触れています。 私のこれまでの歩みが、皆様が自分らしいキャリアを歩む参考になればたいへん嬉(うれ)しく思います。 ▲ Black Hat Asia 2023のロックノート(閉会時基調講演)となるパネルセッションに登壇する筆者(左から2人目) ハッカーに憧れてセキュリティの世界に飛び込む 「世界を広く良くした

                                                                          「Black Hatに採択される」という大きな目標を達成したセキュリティ研究者が次に目指したのは現場への貢献 - Findy Engineer Lab
                                                                        • k0kubun/ruby-jit-challenge 完了報告 - Smoky God Express

                                                                          16.85倍はやい僕のJIT RubyKaigi 2023 お疲れ様でした。非常に面白かったですね。k0kubun さんのRJITについての発表が面白かったので ruby-jit-challange をやりました。無事完走できたので感想記事を書こうと思います(激ウマギャグ) ※: ベンチマークから rjit が抜かれてる理由は後述 RJIT / ruby-jit-challenge ってなに k0kubun さんが Ruby で JIT を書けるような機構を作ってくれました。それをRJITと呼びます。RJIT を手を動かして体験できるチュートリアルが公開されています。親切なREADME、命令列をJITするところ以外の部分、機械語生成用のヘルパーも用意されておりおもてなしの精神がすごい。みんなぜひやりましょう github.com なお冒頭で16倍はやいっていっていますが、特定ベンチマークに

                                                                            k0kubun/ruby-jit-challenge 完了報告 - Smoky God Express
                                                                          • DEAD CODE COOKBOOK ~デッドコードの作り方と復活の呪文~ の紹介 - Qiita

                                                                            この記事は 闇の魔術に対する防衛術 Advent Calendar 2020 の1日目の記事です。 2日目も埋まっていなかったので 存在しない正規表現 という記事を書きます。 参加しているカレンダーとして完走させたいので、是非参加してください! 枠はまだまだ空いています! DEAD CODE COOKBOOK ~デッドコードの作り方と復活の呪文~ を11/30に公開しました。 以下は、「はじめに」「🔖中断を利用するパターン」「🧪return後のコード」「👼ネスト修正による中断コードの移動」「🧟goto文のラベルによるジャンプ」「🧟ホイスティング」を一部抜粋した紹介となります。 本書の目的 デッドコードは、 プログラムの一部として存在するが、決して実行されないコード のことである。一時的な変更等でデッドコードを作る場合もあるが、多くの場合は バグ(プログラム自体の誤り)の可能性が極

                                                                              DEAD CODE COOKBOOK ~デッドコードの作り方と復活の呪文~ の紹介 - Qiita
                                                                            • RubyKaigi 2022に参加しました - BOOK☆WALKER inside

                                                                              こんにちは。 メディアサービス開発部、Webアプリケーション開発課のフサギコ(髙﨑)です。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるテックリードのような立ち位置で働いています。 本記事では、2022年の9月8日から9月10日にかけて三重県津市で開催された、RubyKaigi 2022に現地参加したことについてお話しします1。 RubyKaigiとは 実に3年ぶりの物理開催 見に行った講演の感想など Ruby meets WebAssembly Making *MaNy* threads on Ruby Building a Lightweight IR and Backend for YJIT Towards Ruby 4 JIT Ruby debugger - The best investment for y

                                                                                RubyKaigi 2022に参加しました - BOOK☆WALKER inside
                                                                              • Linux メモリ管理 徹底入門(プロセス編)

                                                                                Linux カーネルのメモリ管理方法について、勉強したことをまとめる。プロセス編。 カーネル編はこちら。 Linux メモリ管理 徹底入門(カーネル編) - SIerだけど技術やりたいブログwww.kimullaa.com 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 メモリ管理 徹底入門(プロセス編)
                                                                                • Maximum call stack size exceeded について解説

                                                                                  "Maximum call stack size exceeded" というエラーに関する解説を書きます。JavaScript を前提に解説しております。 ざっくり解説 Uncaught RangeError: Maximum call stack size exceeded これは、関数が何度も深く深く呼ばれてしまった場合に出るエラーです。 大抵は、間違って自分自身の関数を呼んでしまった、もしくは再帰の終了条件をミスった場合に発生します。 ここに検索で来た方は、自分自身を呼んでいたり、関数同士が循環的に呼びあっていたりするミスを犯していないか確認してください 。 図にすると、こんな感じです ちなみに、関数呼び出しがなければこのエラーは発生しません。ただの無限ループでは決して発生しないエラーです。以下、解説を書きます。 「関数を深く呼ぶ」とは? ここでは、関数からリターンせず再度関数を呼び