はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    参議院選挙2025

『qiita.com』

  • 人気
  • 新着
  • すべて
  • SSA変換とSCCP最適化をJavaScriptで実装してみた。 - Qiita

    4 users

    qiita.com/h_sakurai

    はじめに このプロジェクトはSSA変換およびSCCP最適化(スパース条件付き定数伝播最適化)をJavaScriptで実装してみたものです。 SSA変換はコードフローグラフを破壊的な変数(レジスタ)を無くして非破壊的なレジスタとファイ関数によって構成するようにしたSSA形式に変換する処理です。 SCCP最適化は、常に固定値に評価されるプログラム内の変数と式を検出し、実行時ではなくコンパイル時にそれらの値を計算する最適化処理です。 今回は非常にやる気がなくてですね、いい加減な文章になっていることを先にお詫び申し上げておきます。[静的単一代入(SSA)形式][SSA] に依存して分析の効率を向上させ(スパース)、実行されない制御フローエッジを検出する機能により、従来の定数伝播とは一線を画しています。一定の分岐条件(条件付き)によれるかもしれないけど。みたいな英語を機械翻訳しただけのものをちゃんと

    • テクノロジー
    • 2021/12/09 14:13
    • JavaScript
    • アフィン型をPrologで実装してみた - Qiita

      3 users

      qiita.com/h_sakurai

      この記事は言語実装 Advent Calendar 2020の16日目の記事です。 Prologに慣れていない人のためにPrologでの単相の型システムを示し、線形型システムであるSystem-Fo(Fポップ)およびアフィン型システムSystem-Fa(Fアフィン)を実装例を示します。 アフィン型システムというとRustのオーナーシップの型システムが近いのですが、Rustのような型システムの本質的部分を取り出して実装したものがアフィン型システムです。難解な型システムの数式は嫌がらせのように感じるかもしれませんが、Prologを使えば実際に動かせるのでより理解しやすいものになっているはずです。 1. 単相型システムとlet多相型システム まずは、Prologで単純な型推論を作ってみます: % simple.pl :- op(500,yfx,$),op(600,xfy,:),op(600,xf

      • テクノロジー
      • 2020/12/16 15:00
      • SWI-Prolog でもテストを書こうの話 - Qiita

        4 users

        qiita.com/h_sakurai

        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

        • テクノロジー
        • 2018/08/18 21:42
        • あとで読む
        • 日本語で言語を作ろう 2 : ラムダ計算 - Qiita

          3 users

          qiita.com/h_sakurai

          :- op(1200,xfx,ならば). :- op(1000,xfy,かつ). :- op(750,xfx,[の環境で]). :- op(720,xf,[の要素]). :- op(700,xfx,が). :- op(700,xfx,[を評価すると,の型は]). :- op(20,xf,[で関数適用,が変数,が整数]). :- op(10,xfx,[を]). term_expansion(A ならば B,B:-A). A,B ならば A かつ B. integer(A) ならば A が整数. atom(A) ならば A が変数. B is A ならば A が B. A が (_,A) の要素. A が E の要素 ならば A が (E,_) の要素. % 評価規則 I が整数 ならば _ の環境で I を評価すると I. E の環境で T1 を評価すると V1 かつ E の環境で T2 を

          • テクノロジー
          • 2017/12/19 06:41
          • Prolog で簡単に言語を作ってみる方法 - Qiita

            7 users

            qiita.com/h_sakurai

            概要 プログラミング言語を簡単に作ることはPrologが有用であることを示し、Prologの使い方を説明し、実際にPrologを使って簡単な文法定義を行い、インタプリタを作り、型検査器を作ります。構文定義には正規木文法の定義ライブラリを示します。 todo: パーサ作る必要もないことも書く BNFの読み方を説明する 自然演繹の読み方を説明する Prologのアリティについて説明する 1. はじめに プログラミング言語は、プログラマが1度は作ってみたいと夢見るものの1つです。しかし、なかなか簡単に作れるものではありません。一体どうすれば簡単に言語を作ってみることができるのでしょうか? 以下のような四則演算の言語(図1)を考えましょう: \small \begin{array}{c} \begin{array}{ll} \text{構文}\\ \begin{array}{lcll} t & :

            • テクノロジー
            • 2017/12/08 11:28
            • prolog
            • VSCode拡張の簡単なアセンブラのデバッガをOCamlで作った話 - Qiita

              4 users

              qiita.com/h_sakurai

              これは ML Advent Calendar 2017 の 4日目の記事です。VS Code も絡むのでそっちにも登録してしまいましたw はじめに MLを使いならば、操作敵意味論を理解しなくてはならない。 操作敵意味論を理解するには、論理型言語を理解しなくてはならない。 MLでPrologを実装できれば論理型言語を理解していると言ってよいはずだ。 論理型言語の動作を理解するためにはデバッガがあると便利なはずだ。 しかし、デバッガを作るノウハウが我々にはない。 よって、我々はOCamlによるデバッガを作るサンプルを作成することにしたのである。 1. VS コードのデバッガサンプル(PHPバージョン) これは簡単なアセンブラ言語を作ってそのデバッガを作るサンプルプロジェクトである。 通常は、TypeScriptでDebug Extensions を書くのですが、簡単な標準入出力で VS Cod

              • テクノロジー
              • 2017/12/07 09:47
              • あとで読む
              • 勇者のメモを残そう - Qiita

                4 users

                qiita.com/h_sakurai

                この記事はhttp://qiita.com/advent-calendar/2015/english_translation の18日目の記事です。 今日は、翻訳の量をこなす事は難しい事に付いて書きたいと思います。 漫画とイラストは違います。アニメーションとイラストも違います。 イラストは描けても、漫画を描くのは難しいんです。何が違うのかというと量が違います。 1枚絵はより完璧な絵を描く事が出来ます。でもですよ、、、例えばモナリザのクォリティで漫画やアニメを作る事を考えてみてください。 そりゃ無理ってもんが有りますよね。。。 長い文章を理解するにあたってすべてを逐一正確に翻訳するのは大変です。 自分はよく、適当に翻訳した文章を置いておいたりします。そういう文章をくその山と呼ぶ人もいます。でもそのくその山も作るのは大変なのです。そして、くその山を読むだけでも何となく把握出来る物が有るのも事実

                • テクノロジー
                • 2016/12/27 13:29
                • 誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita

                  5 users

                  qiita.com/h_sakurai

                  はじめに 言語を作る場合には BNF があり操作的意味や型付け規則を定義してあると説得力が増します。シークエント計算の推論規則は長方形に収めることが出来るので、2次元的に図として書くにはとても便利な記述方法です。しかし、読み書きするには、よく知られている処理系がないのでなかなか覚えることが出来ない人も多いのではないでしょうか? \begin{array}{lr} 評価 & \bbox[3px,border:1px solid black]{\;t \longrightarrow t} \\[-30px] \hspace{250px} \\[-30px] \end{array} \\ \begin{array}{cr} \dfrac{ t_1 \longrightarrow t_1' }{ t_1\;t_2 \longrightarrow t_1'\;t_2 } & \text{(E-App

                  • テクノロジー
                  • 2016/12/25 01:03
                  • 怖くないバッカスナウア記法(BNF)入門 - Qiita

                    10 users

                    qiita.com/h_sakurai

                    バッカスナウア記法の説明はたくさん存在しています。しかし、プログラミング言語を作ろうとしている人にとっても、なんだかめんどくさいなぁと思う人は多いように感じます。正規表現はそんなに嫌いじゃないけどBNFは嫌だ。言語を作るのは楽しいけど、仕様書くのはめんどくさい。そんな人も多いと思います。正規表現は歴史を知らずにつくり方を知らずに使っている人も多いでしょう。歴史的経緯は置いておいて、正規表現の拡張としてBNFを捉えればそんなに難しくないと思えるようになるのではないかと思い、この文章を書きました。 正規表現 プログラミング言語を作るのであれば、正規表現は知っていたほうが良いでしょう。 正規表現は、文字列操作をする上で便利な記法です。 Webブラウザ上でもJavaScriptを使って簡単に試すことができます。 たとえば、整数は以下のように表すことができます。

                    • テクノロジー
                    • 2016/12/11 09:33
                    • Rust0.11で作るLLVMコンパイラ - Qiita

                      8 users

                      qiita.com/h_sakurai

                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                      • テクノロジー
                      • 2014/07/27 16:18
                      • rust
                      • プログラミング
                      • 適当なx86_64の勉強の仕方 - Qiita

                        4 users

                        qiita.com/h_sakurai

                        この辺をコンパイルしてみると、こんなのが作れます。 %rax %rbx %rcx %rdx %rdi %rsi %rsb %rbp 等の64bitのレジスタがあります。%raxはアキュムレータと呼ばれます。x86_64の呼び出し規約では関数の返り値が%raxに入れる事になっています。 引数も、6個くらいまでは、レジスタで渡すようになっています。それ以上の場合はスタックに積んで渡します。 x86の場合は呼び出し規約にも寄りますが、基本的にレジスタ数が少ないのでスタックに引数を積んで呼び出す事になります。 ; プログラムのエリアの始まり .section __TEXT,__text,regular,pure_instructions ; _print_iは他のプログラムからも見えます .globl _print_i ; アラインのおまじない .align 4, 0x90 ; 関数の始まり ;

                        • テクノロジー
                        • 2014/05/19 08:17
                        • プログラマのための簡単な型理論入門 - Qiita

                          6 users

                          qiita.com/h_sakurai

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                          • テクノロジー
                          • 2014/04/09 14:13
                          • プログラミング
                          • あとで読む

                          このページはまだ
                          ブックマークされていません

                          このページを最初にブックマークしてみませんか?

                          『qiita.com』の新着エントリーを見る

                          キーボードショートカット一覧

                          j次のブックマーク

                          k前のブックマーク

                          lあとで読む

                          eコメント一覧を開く

                          oページを開く

                          はてなブックマーク

                          • 総合
                          • 一般
                          • 世の中
                          • 政治と経済
                          • 暮らし
                          • 学び
                          • テクノロジー
                          • エンタメ
                          • アニメとゲーム
                          • おもしろ
                          • アプリ・拡張機能
                          • 開発ブログ
                          • ヘルプ
                          • お問い合わせ
                          • ガイドライン
                          • 利用規約
                          • プライバシーポリシー
                          • 利用者情報の外部送信について
                          • ガイドライン
                          • 利用規約
                          • プライバシーポリシー
                          • 利用者情報の外部送信について

                          公式Twitter

                          • 公式アカウント
                          • ホットエントリー

                          はてなのサービス

                          • はてなブログ
                          • はてなブログPro
                          • 人力検索はてな
                          • はてなブログ タグ
                          • はてなニュース
                          • ソレドコ
                          • App Storeからダウンロード
                          • Google Playで手に入れよう
                          Copyright © 2005-2025 Hatena. All Rights Reserved.
                          設定を変更しましたx