並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 38 件 / 38件

新着順 人気順

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

  • スレッドとプロセスの違いを完全に理解する

    はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 本記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、本記事は 5 分程度で読み終えることができます。 本記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

      スレッドとプロセスの違いを完全に理解する
    • pyenvを初心者に薦めるのはもうやめよう - methaneのブログ

      Pythonのパッケージ・プロジェクト管理ツールはまだ乱立状態にあって、どれを使えばいいのかわからないから慣れたpyenv+pipを使おうという判断をする人がいるかもしれない。その判断自体は別に否定しないけれども、初心者に教える時にpyenvを教えるのはもうそろそろやめてほしい。 Pythonをソースからビルドするので、コンパイラや依存ライブラリを事前に揃えないといけない。依存ライブラリが足りないと中途半端なPython環境もできうる。 デフォルトで最適化オプション(PGO+LTO)が付いてないので、最適化ビルドしたPythonより~5%程度遅い Windowsで使えない Rye, pdm, Hatch などは python-build-standalone と呼ばれるビルド済みPythonをインストールする機能があるので、これらの欠点が存在しない。 Pythonをインストールするところま

        pyenvを初心者に薦めるのはもうやめよう - methaneのブログ
      • なぜSQLiteはバイトコードを使うのか

        以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

          なぜSQLiteはバイトコードを使うのか
        • WebAssembly所感

          WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

            WebAssembly所感
          • すべての開発者が知っておくべきメモリ管理についての知識

            プログラミングにおいてメモリ管理は重要な要素の一つですが、その重要性を見過ごされがちなものです。メモリ管理の高レベルな抽象化について、「すべての開発者が知っておくべき要素」としてプログラマーのザカリー・リー氏が解説しています。 Memory Management Every Developer Should Know https://webdeveloper.beehiiv.com/p/memory-management-every-programmer-know メモリは「スタック」と「ヒープ」という2つの領域に分かれています。 ・スタック スタックは「先入れ後出し」という特徴を持つデータ構造で、プログラムの関数呼び出しを記録するのに非常に適しています。例えば下図のように「test()」と「main()」という2つの関数があり、main()からtest()を呼び出す場合を考えてみます。

              すべての開発者が知っておくべきメモリ管理についての知識
            • Zodスキーマでプロンプト生成を行い構造化データを自由自在に扱えて、LLMプロダクト開発が圧倒的に効率化した話 - Algomatic Tech Blog

              最近はAIエンジニアを名乗ってるerukitiです。フロントエンドもバックエンドも、LLMを触るあれこれもやってるので、「AIエンジニア」くらいを名乗るとちょうどよさそうだなと思ってます。いずれLLM自体の開発なんかもやってるかもしれません。 LLMプロダクトを開発していると、構造化データを作りたいのに、Anthropic ClaudeのAPIにはJSONモードが無いことや、なんならJSONモードやfunction callingを使っても、データが正しい形式に従ってることは保証しがたい、みたいな自体に遭遇することがあります。 JSONが出力できたとしても、構造化データをうまく吐き出させるのは難しいものです。文字列を出力させたいけど、複数あるときは、配列なのか、それともカンマ区切りなのか?項目がオプショナルの場合はどうするか?項目が存在しない、空文字や 0 や undefined や nu

                Zodスキーマでプロンプト生成を行い構造化データを自由自在に扱えて、LLMプロダクト開発が圧倒的に効率化した話 - Algomatic Tech Blog
              • Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

                この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

                  Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
                • getとfindの使い分け - 日々常々

                  メソッド名の getXXX と findXXX どっちがいいの?みたいな話になることがある。 この手の話ができるだけでもいい感じだと思います。名前が記号化していないってことなので。 世の中には名前に力を割くのが無駄な文脈もあって、そう言うのに晒されて続けると当然そこに力をかけなくなります。 その文脈では最適解だけど、私は名前が重要だと思っているし、その価値観を土台に他のものを積み上げていきたい。 ということで話を戻す。 「得る」と「探す」のようなものを意図して使い分けるとコードが読みやすくなります。 使い分け方によって読みやすさは変わりはするのですが、「意図して使い分けている」だけでも十分変わります。 その意図に共感できたり汲み取れたりすればさらに読みやすくなりますが、その前段階として意図の有無が重要だと思ってます。 私の基本的な使い分け getHoge(条件): Hoge findHog

                    getとfindの使い分け - 日々常々
                  • 「技術の価値は常に栄枯盛衰」 変化し続ける時代に求められるエンジニアになるためには

                    プログラミングは学ぶ必要がなくなるのか? 島澤甲氏:生成AIは本当に変化をもたらしているかなと思います。今日聞かれているみなさんの中にも、「ぶっちゃけ俺らって、どうなっちゃうのかな?」と、「けっこうコーディングをやってきたけどなぁ」と思っている人が多いんじゃないかなと思います。技育祭も、生成AIの未来についてのセッションがすごく多いので、これはやはりすごく注目されているテーマだし、大事なテーマだと思うんですよね。 なので、このセッションではあえてまったく違う切り口で、この生成AIというテーマを切ってみようかなと思います。ちょっとみなさんに1つ。これは先月かな? まぁまぁネットでもバズったというか話題になりましたけれども、NVIDIAのジェンスン・フアンさんが「もうプログラミングは不可欠ではない」というようなことを提唱しましたね。知っている人もけっこう多いかな? これについて、みんなどう思い

                      「技術の価値は常に栄枯盛衰」 変化し続ける時代に求められるエンジニアになるためには
                    • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

                      前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

                        Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
                      • Zig探訪 - comptime編

                        イントロ さあ、やって参りました。 第1回Zig探訪のお時間です。 今回担当するのは、Zigを使い始めて早くも半年・永遠のニートことsmallkirbyです。 Zig探訪では、Zigの機能や特徴の中で面白いんじゃないかと思うものをピックアップして紹介していきます。 紹介しないこともあります。 第1回のテーマは、Zigの中でも特に重要なコンセプトであるcomptimeについてです。 Zigとは - Everything is Explicit Zigについておさらい 第1回ということで、最初に軽くZigについておさらいしておきましょう。 Zigは、2016年に開発が始まったコンパイル型汎用プログラミング言語です。 Rustが2015年に1.0リリースされた翌年に開発がスタートしたんですね。 最新のリリースはv0.12.0であり、大体1年くらいでマイナーアップデートされるようです。 まだ1.0

                          Zig探訪 - comptime編
                        • 明示的な型注釈によって推論コストを下げるというアプローチ

                          近年、TypeScript を取り巻くエコシステムでは、ユーザーに明示的な型注釈を求めることで、推論や型生成のコストを下げるというアプローチが注目されています。TypeScript 5.5 beta で 発表された --isolatedDeclarations オプションはその代表的な機能ですし、Deno の提供する新しいパッケージレジストリ JSR が提唱している slow types という考え方も同様のアプローチを求めるものです。 この記事では、上記のようなアプローチが提案された経緯や解決したい課題について、TypeScript を利用するエコシステムの状況も踏まえて整理します。 TypeScript を取り巻くツールチェインと型情報を利用する上でのパフォーマンス 皆さんがご存知の通り、TypeScript の型推論は非常に賢く、その機能は日々アップデートされています。特に以下のよう

                            明示的な型注釈によって推論コストを下げるというアプローチ
                          • Svelte v5 で導入された Runes によるリアクティビティシステム

                            <script> let count = 0; function handleClick() { count += 1; } $: doubled = count * 2; </script> <button on:click={handleClick}> Clicked {count} {count === 1 ? "time" : "times"} </button> <p>{count} doubled is {doubled}</p> 上記のコード例では通常の JavaScript と同じ方法で変数が宣言されていますが、これは Svelte のコンパイラによりリアクティブな変数に変換されます。count 変数の値が更新されるたびに、UI が自動的に更新されます。$: で始まる式は Svelte のリアクティビティシステムにより自動的に監視され、変更があると再評価されます(構文として

                              Svelte v5 で導入された Runes によるリアクティビティシステム
                            • Kotlin 2.0正式リリース。新コンパイラ「K2」採用でコンパイル速度が約2倍、マルチプラットフォーム対応も加速へ

                              JetBrainsは、同社が主導して開発しているプログラミング言語「Kotlin」のメジャーバージョンアップとなる「Kotlin 2.0」を、日本時間5月23日に行われたイベント「KotlinConf'24」で発表しました。 KotlinはJavaVM言語として登場し、2017年にAndroidの正式な開発言語になったことで急速に注目度を高めました。現在ではサーバサイドやAndroid、iOS、Windows、Webアプリケーションなどの開発にも対応するマルチプラットフォーム……

                                Kotlin 2.0正式リリース。新コンパイラ「K2」採用でコンパイル速度が約2倍、マルチプラットフォーム対応も加速へ
                              • RubyKaigi 2024 参加レポート - ZOZO TECH BLOG

                                こんにちは、DevRelブロックのikkouです。2024年5月15日から17日の3日間にわたり沖縄県は那覇市で「RubyKaigi 2024」が開催されました。ZOZOは例年同様プラチナスポンサーとして協賛し、スポンサーブースを出展しました。 technote.zozo.com ZOZOとWEARとRubyKaigi エンジニアによるセッション紹介 Generating a custom SDK for your web service or Rails API Namespace, What and Why YJIT Makes Rails 1.7x Faster Using Ruby in the browser is wonderful. An adventure of Happy Eyeballs Embedding it into Ruby code Unlocking Pot

                                  RubyKaigi 2024 参加レポート - ZOZO TECH BLOG
                                • 突然の高額ライセンス料請求のワナ、企業がJavaを賢く利用するには

                                  「高額なJavaのライセンス料を請求される企業が後を絶たない」――。Javaのライセンスに詳しいITコンサルタントはこのように警鐘を鳴らす。ライセンスを気にせずJavaを利用していたところ、ある日突然、高額なライセンス料を請求されるのだという。 Javaプログラムの開発・実行に欠かせないのが、JDK(Java Development Kit)だ。JDKにはJavaプログラムの開発・実行に必要なソフトウエアが含まれる。例えばJava SE(Java Platform Standard Edition)の仕様に準じたAPI実装やJava仮想マシン(JVM)、Javaコンパイラーなどである。現在、様々なベンダーがJDKを提供し、サポート期間やライセンス料がJDKごとに異なる。 米Oracle(オラクル)が提供するJDKディストリビューションには「Oracle OpenJDK」と「Oracle J

                                    突然の高額ライセンス料請求のワナ、企業がJavaを賢く利用するには
                                  • RubyKaigi 2024 でスーファミと mruby/c について発表しました | Wantedly Engineer Blog

                                    ウォンテッドリーでエンジニアをしている @gedorinku です。5/15から5/17に沖縄で開催された RubyKaigi 2024 に参加して登壇してきました。 Porting mruby/c for the SNES (Super Famicom) RubyKaigi 2024, #rubykaigi https://rubykaigi.org/2024/presentations/gedorinku.html#day3 当日の発表スライドは以下で公開しています。 内容は、mruby/c という組み込み向けの Ruby ランタイムをスーパーファミコンに移植して動かしたというものでした。不安定な C コンパイラのデバッグやカセット内の特殊チップ(SA-1)を使った mruby/c VM の高速化といった mruby/c をスーファミで動作させるために必要なハックについて話しました。発

                                      RubyKaigi 2024 でスーファミと mruby/c について発表しました | Wantedly Engineer Blog
                                    • TSKaigi 2024 Prettierの未来を考える スピーカーノート

                                      TSKaigi 2024 で話した「Prettier の未来を考える」という発表のスピーカーノートです。スライドは こんにちは、今日は「Prettierの未来を考える」というタイトルでお話させていただきたいと思います。 鈴木 颯介と言います。ユビー株式会社でプロダクト開発エンジニアとして働きながら、筑波大学でパソコンの勉強をしています。オープンソースソフトウェアが好きで、今日お話するPrettierのメンテナーをしたり、トランスパイラのBabelのコミッターをしたりしています。最近はWebKitのJSエンジンにたくさんパッチを投げたりしています。 私が働いているユビーは、TSKaigiのGold Sponsorをさせてもらっています。ブースがあります。ユビーのグッズの他に、Prettierのステッカーも配布しておりますので、興味がある方はぜひお立ち寄りください。 まず、Prettierにつ

                                        TSKaigi 2024 Prettierの未来を考える スピーカーノート
                                      • React Compiler を試す

                                        はじめに 先日 React Compiler がオープンソース化されました。 ソースコードはこちら。 公式ドキュメントにも React Compiler のページが追加されています。 この記事では React Compiler を簡単に試してみたいと思います。React Compiler の登場背景や詳しい解説などは、公式ドキュメントや React チームのブログを参照してください。(タイトルに React Labs とついているブログで詳しく書かれています) 検証 React Compiler は useMemo や useCallback、React.memo を使わずとも、無駄な再レンダリングを抑制してくれるコンパイラです。それが本当に機能するのか、簡単なサンプルを作成して検証します。 まずプロジェクトを作成します。今回は手軽な Vite を使用しますが、Next.js や Webp

                                          React Compiler を試す
                                        • RAMが16KBあればとりあえず動くプログラミング言語 まつもとゆきひろ氏が「mruby/c」の特徴を解説

                                          RAMが16KBあればとりあえず動くプログラミング言語 まつもとゆきひろ氏が「mruby/c」の特徴を解説 #23 mruby/c mrubyに派生して存在するmruby/c まつもとゆきひろ氏:こんにちは、まつもとゆきひろです。Matzチャンネル、23回目ですね。今日は、前回予告した「mruby Kaigi」のパネルの話をする前に、mruby/c、「エムルビーシー」って発音しています……の紹介を先にしておこうと思います。 Rubyの派生で、別実装であるmrubyなんですが、さらに派生として、mruby/cというのが存在しています。 背景としては、軽量Rubyとして始まったmrubyなんですけれども、2010年の時点で、5年後のマイクロコントローラのCPUパワーとメモリは、Rubyを実行するのに十分なだけのパワーと容量を持っているという予想をしていたんですね。2010年から数えて5年後なの

                                            RAMが16KBあればとりあえず動くプログラミング言語 まつもとゆきひろ氏が「mruby/c」の特徴を解説
                                          • AI性能を重視したIntel第14世代SoC「Core Ultra」に搭載されたNPUの性能とは?

                                            Intelが2023年12月に正式発表した第14世代CoreプラットフォームのノートPC向けプロセッサ「Core Ultra」は、2023年9月に発表されたMeteor Lakeアーキテクチャがベースになっています。そんなCore UltraにはAI処理に特化したニューラルプロセッシングユニット(NPU)が搭載されており、このNPUについて海外メディアのChips and Cheeseが解説しています。 Intel Meteor Lake’s NPU – Chips and Cheese https://chipsandcheese.com/2024/04/22/intel-meteor-lakes-npu/ Core Ultraに搭載されたNPUは「NPU 3720」と呼ばれています。そんなNPU 3720には2つのニューラルコンピューティングエンジン(NCE)タイルが搭載されており、こ

                                              AI性能を重視したIntel第14世代SoC「Core Ultra」に搭載されたNPUの性能とは?
                                            • Kotlin 2.0 リリース記念: 高速で、スマートな、マルチプラットフォーム対応 | The Kotlin Blog

                                              この度、安定版 K2 コンパイラーを備えた Kotlin 2.0 をリリースすることになりました。このコンパイラーはマルチプラットフォームとしてゼロから開発されており、コードをより深く理解して 2 倍の速度でコンパイルすることが可能です。 Kotlin は JVM 言語として始まり、その簡潔さと安全性により、開発者をすぐに魅了しました。 AWS、Adobe、Atlassian、Google などの大手企業が採用し、サーバーサイドで急速に普及しています。 Kotlin は Android 開発の主要言語としても採用されるようになり、上位 1,000 タイトルに入る Android アプリのうち 95% が Kotlin コードを使用しています。 JetBrains は Kotlin Multiplatform(KMP)を導入することで Kotlin の限界をさらに押し広げ、サーバーサイド、ウ

                                                Kotlin 2.0 リリース記念: 高速で、スマートな、マルチプラットフォーム対応 | The Kotlin Blog
                                              • Kotlin 2.0がリリース、新コンパイラK2安定版で高速なコンパイルが可能に | gihyo.jp

                                                Kotlin 2.0がリリース⁠⁠、新コンパイラK2安定版で高速なコンパイルが可能に JetBrainsは2024年5月21日、同社が開発するプログラミング言語Kotlinの最新バージョンKotlin 2.0をリリースした。 Celebrating Kotlin 2.0: Fast, Smart, and Multiplatform | The Kotlin Blog What's new in Kotlin 2.0.0 | Kotlin Documentation Kotlin 2.0では、かねてから開発が進められてきた新しいコンパイラK2が安定版として搭載された。K2ではコードの構文解析、セマンティック解析、データフロー解析、呼び出し解決、および型推論などがすべて一新された。またIDEへのプラグイン経由で動作する際にはすべてのエラーと警告メッセージを報告し、自動補完、セマンティクス認識

                                                  Kotlin 2.0がリリース、新コンパイラK2安定版で高速なコンパイルが可能に | gihyo.jp
                                                • Rubyist Hotlinks 【第 39 回】古橋貞之 さん

                                                  はじめに 著名な Rubyist にインタビューを行う企画「Rubyist Hotlinks」。第 39 回となる今回は、古橋貞之さん。 では、お楽しみください。 インタビュー 聞き手 卜部さん (@shyouhei) 語り手 古橋貞之さん (記事中「古橋」) 野次馬(古橋さんの現職であるトレジャーデータの同僚と元同僚のみなさん) 国分さん、成瀬さん、田籠さん、金子さん、三村さん 日にち 2023 年 5 月 11 日 写真提供 : 目次 Table of content プロフィール 卜部 はい、じゃあお疲れ様です。ゆるりと始めていきますが。るびまのインタビューはポッドキャストにしないという信念の元に、ポッドキャストにしていなくて。 三村 そんな信念が。 卜部 なんでかっていうと、いくら迂闊なことをゆっても後から編集できるからっていう。これがね、やっぱ迂闊なことを言ってもらわないと楽しい

                                                  • 噂の「Python, JITコンパイラサポートするってよ」を試してみる | DevelopersIO

                                                    はじめに ※これはまだ正式リリース前の情報です。ここに書いたことが嘘になる可能性がありますのであらかじめご了承ください。 ちょっと前になんか見てるとき、PythonがJITに対応するって目にしました。 僕は普段PypyではなくCPythonを使っているので、実現すると嬉しいなぁと思いつつ今日まで過ごしてきました。 そんな中、たまたまpython JITとかでググるとこんな記事を見つけたわけです。 ここにはCPythonで採用する予定のJIT方式の概要が書かれているわけですが、1行目に CPython core developer Brandt Bucher submitted a little pull-request to the Python 3.13 branch adding a JIT compiler. PRが作られている...! ということで早速Python3.13をインスト

                                                      噂の「Python, JITコンパイラサポートするってよ」を試してみる | DevelopersIO
                                                    • 【Fortran】コンパイラ gfortran のインストール(mac編)【Hello, World!】 - LabCode

                                                      はじめに これから、今でも数値計算の分野において現役で使用されている Fortran (正確には Fortran 90/95) について、いくつかの記事にわたって紹介していきたいと思います。 Fortran で書かれたプログラムは、そのままでは実行することができません。「コンパイル」を実行して、実行ファイルを作成する必要があります。今回は、このコンパイルを実行するためのソフトウェアであるコンパイラをインストールし、実際にコンパイルし、プログラムを実行をしてみましょう。 本記事では、macOSのコンピュータを対象としています。Windowsをお使いの方は、こちらの記事をご参照ください。

                                                        【Fortran】コンパイラ gfortran のインストール(mac編)【Hello, World!】 - LabCode
                                                      • Ruby: 2024年までのPrismパーサーの長い歴史を振り返る(翻訳)|TechRacho by BPS株式会社

                                                        概要 CC BY-NC-SA 4.0 Deedに基づいて翻訳・公開いたします。 英語記事: Prism in 2024 | Rails at Scale 原文公開日: 2024/04/16 原著者: Kevin Newton CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons 日本語タイトルは内容に即したものにしました。 syntax treeは「構文ツリー」と訳しています。lexerは英ママとしています。 Ruby 3.3.0では、Prismと呼ばれる新しい標準ライブラリがCRubyに追加されました。PrismはRuby言語を解析するパーサーであり、Cライブラリ版(CRubyでもオプションで利用可能)とRubyライブラリ版(Ruby gemとして利用可能)の両方が公開されています。Prismプロジェクトは多くの開発

                                                          Ruby: 2024年までのPrismパーサーの長い歴史を振り返る(翻訳)|TechRacho by BPS株式会社
                                                        • Rust製TypeScript Linterにおける型情報Lintルールの模索

                                                          Rust製TypeScript LinterであるBiome, Oxc, deno_lintなどは、TypeScriptの型情報を利用するLintルール(型情報Lintルール)[1]を持っていません。本記事では、その背景から、Rust製TypeScript Linterが型情報Lintルールを実現するための手段についてまとめます。 筆者のTSKaigi 2024で利用した下記登壇資料に情報を追加し、文章化したものです。 要約すると、以下になります。 Rust製TypeScript Linterは、安全性をさらに高めてくれるtypescript-eslintの型情報Lintルールが欲しいが、パフォーマンスを犠牲にしたくない。TypeScript Compilerに頼らずに実現するには、Alternative TypeScript Compilerや型推論が必要。型情報Lintルールの実装を型

                                                            Rust製TypeScript Linterにおける型情報Lintルールの模索
                                                          • 【Fortran】コンパイラ gfortran のインストール(Windows編)【Hello, World!】 - LabCode

                                                            Fortran とは Fortran とは formula translator から取られたもので、その名の通り数値計算に強い、静的型付けのコンパイル言語です。1950年代に登場し、初期の頃はパンチカードにコーディング (パンチング?)し、カードの束を計算機センターに持ち込んで計算していたそうです。 古くからあるため、豊富なライブラリの蓄積があります。そのため、いまでも科学計算の分野で使用されているプログラミング言語です。 コンパイラとは Python や Perl、JavaScript のように、エディタでコーディングしただけでは実行することができません。コンパイラというソフトウェアを使用して、ソースファイルをコンパイルし、コンピュータに実行させるための実行ファイルを作成する必要があります。 いくつかのコンパイラがありますが、この記事では、オープンソースのコンパイラである GNU Fo

                                                              【Fortran】コンパイラ gfortran のインストール(Windows編)【Hello, World!】 - LabCode
                                                            • わたしたちはどんな準備をして RubyKaigi 2024 に向かったか - Techouse Developers Blog

                                                              Techouse技術責任者の山崎 (Twitter: @nappa) です。 今回わたしたちは新卒入社のエンジニアメンバーを含め総勢17人のメンバーでRubyKaigi 2024に参加しています! 個人的には2010年につくばで開催された「日本Ruby会議 2010」以来ひさしぶりの参加となりました(※私の記憶が確かならば)。14年ぶんの時代の変化を感じるとともに、RubyとRubyを含むエコシステムの大きな変化を感じたところです。 さて、当ブログではメンバーに、参加したセッションのまとめ記事や感想を書いてもらっています。その多くは今年の4月に新社会人として入社したばかりです。彼らが Ractor や YJIT などの技術的な内容をスッと理解してサクッとブログを書き起こしてくれていることを、とてもうれしく思います。 しかし、なんでみんなサクっと書けているのでしょうか……? 事前学習 いきな

                                                                わたしたちはどんな準備をして RubyKaigi 2024 に向かったか - Techouse Developers Blog
                                                              • RubyKaigi 2024 - Matz Keynote (Day3) - Techouse Developers Blog

                                                                こんにちは、2024年に新卒で入社し、クラウドハウス労務事業部でバックエンドエンジニアをしているdaiki_fujiokaです。 本記事では、3日目の最後のセッションである Yukihiro "Matz" Matsumoto(@yukihiro_matz)さんによる Matz Keynoteについて紹介させていただきます。 セッション内容: 「Better Ruby」 発表者は Rubyist であれば誰もが知っている Ruby 生みの親 Matz ことまつもとゆきひろさんになります。 テーマは「Better Ruby」で、この1年間における Ruby の発展を踏まえてこれからの Ruby をより良くするために必要なことを紹介されていました。 本記事ではKeynoteで発表されたことをまとめ、私がこれまで参加したセッションも含めて感じたことについて紹介しています。 Ruby の設計思想や特

                                                                  RubyKaigi 2024 - Matz Keynote (Day3) - Techouse Developers Blog
                                                                • Exploring Type-Informed Lint Rules in Rust based TypeScript Linters

                                                                  Exploring Type-Informed Lint Rules in Rust based TypeScript Linters | Rust製TypeScript Linterにおける型情報Lintルールの模索 This slides are used at TSKaigi 2024 | TSKaigi 2024 にて利用した資料です。(20m) Update requests are welcome anytime. ## References - Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now https://www.joshuakgoldberg.com/blog/rust-based-javascript-linters-fast-but-no-typed-linting-right-n

                                                                    Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
                                                                  • PGOによるコンパイラ最適化 / Compiler Optimization with PGO

                                                                    Go1.13以後のエラーハンドリングについて語ろう / Let's talk about error handling after Go 1 13

                                                                      PGOによるコンパイラ最適化 / Compiler Optimization with PGO
                                                                    • 量子コンピュータのコンパイラ高速化技術を開発|2024年|NICT-情報通信研究機構

                                                                      国立研究開発法人情報通信研究機構(NICT(エヌアイシーティー)、理事長: 徳田 英幸)は、国立研究開発法人理化学研究所(理事長: 五神 真)、東京理科大学(学長: 石川 正俊)、東京大学(総長: 藤井 輝夫)と共同で、量子コンピュータに最適な量子ゲートシーケンスを確率的探索手法を用いて迅速に探索する技術の開発に初めて成功しました。 量子コンピュータにタスクを実行させるには、コンパイラを使い、プログラミング言語で書かれた命令を量子ビットへのゲート操作で構成されるシーケンスに変換する必要があります。私たちは、最適制御理論(GRAPEアルゴリズム)を網羅的探索に応用して、理論的に最適なものを特定する手法を開発しましたが、量子ビット数が増えるに従い、可能な組合せの数が爆発的に増えるため、網羅的探索が不可能となります。例えば、6量子ビットで構成される任意の量子状態を生成するタスクに対して、もし、網

                                                                        量子コンピュータのコンパイラ高速化技術を開発|2024年|NICT-情報通信研究機構
                                                                      • 挫折しないプログラミング勉強法を図解してみる|KY研究所@CoderDojo横浜港北ニュータウンやってます

                                                                        お疲れ様です。Y研究員です。プログラム勉強法の「写経」を実践しながら研究しています。今日はタイトル通り、挫折を防ぐ方法を図解します。 目的一直線を何個かやるChatGPT4にプログラムを作ってもらい、それを「写経」をする勉強法です。大まかに解説をしてもらい、疑問点は更に詳しく質問します。応用問題も作ってくれるので「写経」の次の「少し変えてみる」ができます。知識の定着です。 お題はゲームにしていますが、目的一直線な感じがしました。よくあるプログラミング言語の本とは違う感じです。本では網羅的にプログラムの書き方を紹介します。図解してみます。 青い線が網羅的な本、オレンジが目的一直線を何回かやるイメージです。ChaGPTを使って勉強すると、目的に向かって必要なことだけをします。余計なことはやりません。分からない所を質問すれば幅は広がりますが、広い範囲をカバーしている感じがしません。図にも書きまし

                                                                          挫折しないプログラミング勉強法を図解してみる|KY研究所@CoderDojo横浜港北ニュータウンやってます
                                                                        • Rails: 16年前の古いgemハックを2024年に踏んでヤケドした話(翻訳)|TechRacho by BPS株式会社

                                                                          概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: How to get burned by 16 years old hack in 2024 | Arkency Blog 原文公開日: 2024/03/15 原著者: Paweł Pacana 日本語タイトルは内容に即したものにしました。 私がコンサルティングしているプロジェクトのプログラマーは、もっぱらクラウド環境上で開発しています。このセットアップのおかげで多くの変動要素をシンプルにでき、コードを実行するために同じコンテナを開発者全員に提供できるというメリットが得られます。私のボックスで実行できるものは、全員のボックスで実行できるというわけです。ここで言うボックスはLinuxベースなのですが、開発者のたくましいローカルマシン(Apple Silicon上で動作するMacBook Pro)よりもレイテンシが大きく、リソースの

                                                                            Rails: 16年前の古いgemハックを2024年に踏んでヤケドした話(翻訳)|TechRacho by BPS株式会社
                                                                          • RubyKaigi 2024 - YJIT Makes Rails 1.7x Faster (Day3) - Techouse Developers Blog

                                                                            YJIT Makes Rails 1.7x Faster こんにちは、2024年に新卒で入社し、ジョブハウスでバックエンドエンジニアをしているnozomemeinです。 本記事では、3日目のTakashi Kokubun(@k0kubun)さんによるセッション、YJIT Makes Rails 1.7x Faster について紹介させていただきます。 YJITとは? 講演の内容に入る前に、YJITの歴史と特徴についてまとめます。 YJITの概要 YJITは「Yet Another Ruby JIT」の略で、Shopifyで開発され、Ruby 3.1から導入されたJITコンパイラです。 Ruby2.6から、MJITと呼ばれるJITコンパイラが存在していましたが、YJITはそれをさらに進化させたものです。 YJITはJITコード(中間表現 or IR)を使用し、機械語に変換して実行します。 こ

                                                                              RubyKaigi 2024 - YJIT Makes Rails 1.7x Faster (Day3) - Techouse Developers Blog
                                                                            • 週刊Railsウォッチ: Ruby/Railsのアップグレード情報をscrapboxに集約ほか(20240514後編)|TechRacho by BPS株式会社

                                                                              こんにちは、hachi8833です。今夜沖縄に到着します。 RubyKaigi 2024で話題になりそうな技術的トピックの予習メモをまとめた https://t.co/IjadL2Y7XE — osyoyu (@osyoyu) May 11, 2024 週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また

                                                                                週刊Railsウォッチ: Ruby/Railsのアップグレード情報をscrapboxに集約ほか(20240514後編)|TechRacho by BPS株式会社
                                                                              1