並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 597件

新着順 人気順

コンパイラの検索結果361 - 400 件 / 597件

  • GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features - Phoronix

    GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features Written by Michael Larabel in GNU on 6 May 2022 at 06:35 AM EDT. 6 Comments GCC 12.1 is out today as the first stable release of GCC 12. It also marks 35 years already since the release of GCC 1.0. With a year's worth of changes, GCC 12.1 is a big feature release with a lot of good stuff in it from new C/C++ f

      GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features - Phoronix
    • A decade of developing a programming language

      In 2013, I had an idea: "what if I were to build my programming language?". Back then my idea came down to "an interpreted language that mixes elements from Ruby and Smalltalk", and not much more. Between 2013 and 2015 I spent time on and off trying different languages (C, C++, D and various others I can't remember) to see which one I would use to build my language in. While this didn't help me fi

      • Simply Parse in C

        by Chloe Kudryavtsev People are terrified of parsers and parsing. To the point of using magical libraries with custom syntaxes to learn just to get started. In the hopes of completely shattering this preconception, I will write a parser for the “ini” file format in about 150 lines of pure and readable ISO C99. Furthermore, this parser will be something that's nice to use and has error correcting f

          Simply Parse in C
        • Common Misconceptions about Compilers

          Don't want to miss any updates? You can follow this RSS feed or sign up for my newsletter: Compilers have always been surrounded by an air of mystery and magic. This has led many of us to believe that they do things (well) that they don't, or that they don't do things (well) that they do.1 In this article is one some way a follow-up of a previous one on compiler optimization. Here, I've collected

            Common Misconceptions about Compilers
          • How I wrote my own "proper" programming language

            The diagram above is the compiler for the language Bolt we’ll be building. What do all the stages mean? I have to learn OCaml and C++? Wait I haven’t even heard of OCaml… Don’t worry. When I started this project 6 months ago, I had never built a compiler, nor had I used OCaml or C++ in any serious project. I’ll explain everything in due course. In this series of posts we’ll be building a proper pr

              How I wrote my own "proper" programming language
            • leontrolski - adding Python syntax

              ⇦ 2024-10-17 Adding syntax to the cpython interpreter Condensed version of this cool blog post. Let's add some new syntax to Python! Making a small change is not so hard. Our aim is to make ternary statements default to None as they do in Ruby: >>> "hello" if 2 + 2 == 4 "hello" >>> "hello" if 2 + 2 == 5 None In existing Python, we get an error: File "<python-input-0>", line 1 "hello" if 2 + 2 == 5

              • 75x faster: optimizing the Ion compiler backend

                In September, machine learning engineers at Mozilla filed a bug report indicating that Firefox was consuming excessive memory and CPU resources while running Microsoft’s ONNX Runtime (a machine learning library) compiled to WebAssembly. This post describes how we addressed this and some of our longer-term plans for improving WebAssembly performance in the future. The problem SpiderMonkey has two c

                  75x faster: optimizing the Ion compiler backend
                • PicoRubyを理解する1

                  PicoRubyA Ruby interpreter implementation for one-chip microcontrollers - PicoRubyGitHubちゃんと中身を理解できてなかったので、コードや資料を読んで理解したい。 特にパーサーやVMの周りをどうやって小さくできているのか。 まずは基礎知識から。 公式情報PicoRuby DocumentationAPI documentationPicoRuby Documentation 羽角さんの資料2025MicroRuby: True Microcontroller RubyRubyKaigi 2025, #rubykaigiRubyKaigiRubyKaigi 2025 で発表したMicroRubyとはなんだったのかMicroRuby: True Microcontroller Ruby というタイトルの発表をし

                    PicoRubyを理解する1
                  • GitHub - fuzzballcat/milliForth: A FORTH in 340 bytes — the smallest real programming language ever as of yet.

                    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

                      GitHub - fuzzballcat/milliForth: A FORTH in 340 bytes — the smallest real programming language ever as of yet.
                    • Exploring the c4... compiler?

                      Let’s start at the top: it’s C in four functions — what? And if you open the code you’ll see that, yes, this is true, no cheating: And it works! First you need an existing C compiler to compile c4 and then you can use c4 to run another C program. Say I have this program: // my_program.c #include <stdio.h> int add(int a, int b) { return a + b; } int main() { int a, b, c; a = 99; b = 20; c = add(a,

                        Exploring the c4... compiler?
                      • Home - Playing with code

                        TinyCompiler: a compiler in a week-end Introduction Have you ever wondered how a compiler works, but you never found courage to find out? Then this series of articles is for you. I have never had the chance to look under the hood either, but one week-end I have decided to to write a translator from the esoteric programming language wend (short for week-end), which I just invented myself, into regu

                        • 最適化コンパイラへのいざない (1) - Qiita

                          記事一覧 はじめに(この記事) マルチパスコンパイラ 定数に関する最適化 プログラムの構造 ..... 対象読者 コンパイラの内部構造について興味がある方 コンパイラに関して精通している方(批評お待ちしております) はじめに ある程度コンパイラについての学習が進み,小さな自作言語などを作れるようになると,こんな疑問が浮かぶのではないでしょうか. 「世の中のコンパイラって,こんなのだったっけ?」 コンパイラの作り方が解説されている日本語の記事は,最近なら簡単に見つかります.ですが,それらの大半は所謂ワンパスコンパイラの作り方について解説しており,より高度な,具体的には gcc や clang 等の実用的コンパイラが行っている最適化というものについての記述が乏しいです. (もちろん,ドラゴンブックや虎本を読めば最適化について書いてありますが,初心者が簡単に手を出せるものではないように思えます.

                            最適化コンパイラへのいざない (1) - Qiita
                          • インスタンスを作るって言うけど、パソコンのどこにできるの? - DIVX engineer gateway

                            インスタンスを作るって言うけど、パソコンのどこにできるの? はじめに こんにちは。株式会社divxのエンジニア高橋です。 突然ですが、「インスタンスはパソコンのどこにできるの?」と聞かれたら皆さんはなんと答えるでしょうか? この質問に対してパッと答えられない方も中にはいると思います。私自身そうでした… 今の時代、プログラミングをRubyなどから学習した方も多く、Rubyの様な高級言語ではプログラムが裏側でどの様に動くかを意識しなくても開発できてしまいます。 しかし裏側の知識がない状態で開発をしてしまうと、低レイヤーの障害が起きた時にわけが分からず、解決にたどり着けない場合があります。 また裏側の仕組みを知ることで、自分が作っているプログラムを新しい角度から見ることができ、もっとプログラミングが楽しくなるはずです。 本記事では、裏側の仕組みの中で「インスタンスが作られる場所」についてフォーカ

                              インスタンスを作るって言うけど、パソコンのどこにできるの? - DIVX engineer gateway
                            • インクリメント演算子とコンパイラの気持ち

                              #include <stdio.h> int main(){ int a = 1; int b = ++a + ++a + ++a; printf("%d\n",b); } 結果は処理系に依存し、gccなら10に、clangなら9になります。これが未定義動作なのか処理系定義なのか、それとも他の何かは仕様警察に任せるとして、gccやclangはこれをどう解釈したのか、その気持ちを探ってみようと思います。 なお、以下は中間コードその他から僕が勝手にコンパイラの気持ちを推し量ったものであり、正確性については保証しません。 インクリメント演算子 ++というインクリメント演算子は、変数に1を加算するものです。++aやa++のように、前に付ける場合と後ろにつける場合で、代入に対する振る舞いが変わります。 前につける場合、インクリメントは代入の前に行われます。例えば、

                                インクリメント演算子とコンパイラの気持ち
                              • Increasing the glibc and Linux kernel requirements | Rust Blog

                                The minimum requirements for Rust toolchains targeting Linux will increase with the Rust 1.64.0 release (slated for September 22nd, 2022). The new minimum requirements are: glibc >= 2.17 (previously glibc >= 2.11) kernel >= 3.2 (previously kernel >= 2.6.32) These requirements apply both to running the Rust compiler itself (and other Rust tooling like Cargo or Rustup), and to running binaries produ

                                  Increasing the glibc and Linux kernel requirements | Rust Blog
                                • When Zero Cost Abstractions Aren’t Zero Cost

                                  Rust is built around the concept of “zero cost abstraction”. The idea is that you can write human-friendly high level code and the compiler will give you for free performance at least as good as any optimized low level code you could have written yourself. With zero cost abstraction, you no longer have to trade off between maintainability and performance. Unfortunately, it is difficult to ensure t

                                  • WASM Playground

                                    Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out. Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R. Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects ar

                                      WASM Playground
                                    • Going REPLing with Haskeline

                                      October 31, 2024 A twenty-six minute read 10 💬 4 🗣️ ❤️ 14 🔁 Tags: programmingprogramming-languagesinterpretershaskell So you went ahead and created a new programming language, with an AST, a parser, and an interpreter. And now you hate how you have to write the programs in your new language in files to run them? You need a REPL! In this post, we’ll create a shiny REPL with lots of nice features

                                        Going REPLing with Haskeline
                                      • OCamlコンパイラのバックエンドを提供するMalfunctionが面白そう - Arantium Maestum

                                        OCamlのDiscuss掲示板を眺めていたらこんなプロジェクトについての言及があった: github.com Malfunction is a high-performance, low-level untyped program representation, designed as a target for compilers of functional programming languages. OCamlコンパイラの中間表現であるLambda言語(とほぼ同等のもの)を受け取り、OCamlバイトコードかnativeコードへのコンパイルをしてくれるようだ。 (追記:バイトコードにコンパイルできるというのは間違い。実際にはOCamlコンパイラとは別なLambda言語インタプリタがある) Lambda IRはOCamlコンパイラにフラグを渡すと出力してくれる。以前少し調べていくつか記事

                                          OCamlコンパイラのバックエンドを提供するMalfunctionが面白そう - Arantium Maestum
                                        • GitHub - sef-computin/rubyk: RubyK - TinyRuby compiler

                                          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

                                            GitHub - sef-computin/rubyk: RubyK - TinyRuby compiler
                                          • CS 6120: The Self-Guided Course

                                            Syllabus Schedule Lessons Zulip Blog CS 6120: Advanced Compilers: The Self-Guided Online Course CS 6120 is a PhD-level Cornell CS course by Adrian Sampson on programming language implementation. It covers universal compilers topics like intermediate representations, data flow, and “classic” optimizations as well as more research-flavored topics such as parallelization, just-in-time compilation, an

                                            • GitHub - mazeppa-dev/mazeppa: A modern supercompiler for call-by-value functional languages

                                              Supercompilation 1 is a program transformation technique that symbolically evaluates a given program, with run-time values as unknowns. In doing so, it discovers execution patterns of the original program and synthesizes them into standalone functions; the result of supercompilation is a more efficient residual program. In terms of transformational power, supercompilation subsumes both deforestati

                                                GitHub - mazeppa-dev/mazeppa: A modern supercompiler for call-by-value functional languages
                                              • Understanding Allocations in Go

                                                Cleaning up heap allocations in GoThis is the 18th article of the Eureka Advent Calendar 2020. Yesterday we had a post from Jun Ernesto Okumura on diversity in Spotify’s recommender systems. IntroductionThanks to efficient in-built memory management in the Go runtime, we’re generally able to prioritise correctness and maintainability in our programs without much consideration for the details of ho

                                                  Understanding Allocations in Go
                                                • Cuis-Smalltalk

                                                  “Yay, Juan. You GO, guy! …a great example of malleable software (and a clever mind) at work.” Dan Ingalls “I like it… It’s nice and clean and simple and pretty. Nice stuff!” Alan Kay “I think you have a very elegant design aesthetic.” John Maloney Cuis is a free Smalltalk-80 environment with a specific set of goals: being simple and powerful. It is also portable to any platform, fast and efficient

                                                  • Why I love Rust for tokenising and parsing

                                                    Nov 4, 20243931 Words19 Minute readTable of Contents I am currently writing a analysis tool for Sql: sqleibniz, specifically for the sqlite dialect. The goal is to perform static analysis for sql input, including: syntax checks, checks if tables, columns and functions exist. Combining this with an embedded sqlite runtime and the ability to assert conditions in this runtime, creates a really great

                                                    • Simple but Powerful Pratt Parsing

                                                      Simple but Powerful Pratt Parsing Apr 13, 2020 Welcome to my article about Pratt parsing — the monad tutorial of syntactic analysis. The number of Pratt parsing articles is so large that there exists a survey post :) The goals of this particular article are: Raising an issue that the so-called left-recursion problem is overstated. Complaining about inadequacy of BNF for representing infix expressi

                                                      • Create Your Own Compiler

                                                        In this tutorial, we'll be doing an instructed walkthrough of Jamie Kyle's "The Super Tiny Compiler". The Super Tiny Compiler is a simple compiler written in Javascript and we'll write it step by step from scratch.

                                                          Create Your Own Compiler
                                                        • P/Invoke source generation - .NET

                                                          .NET 7 introduces a source generator for P/Invokes that recognizes the LibraryImportAttribute in C# code. When it's not using source generation, the built-in interop system in the .NET runtime generates an IL stub—a stream of IL instructions that is JIT-ed—at run time to facilitate the transition from managed to unmanaged. The following code shows defining and then calling a P/Invoke that uses thi

                                                            P/Invoke source generation - .NET
                                                          • Juliaの速さの核心に迫る〜インタプリタ、コンパイラ、JITコンパイラ〜 - SEむううみんのプログラミングパラダイス

                                                            新星プログラミング言語Julia。 Rubyの動的さとC言語の速度を両立させた、公認会計士の資格を取得したジャニーズJr.みたいな、そんなのアリかよって感じの言語だ。 Juliaの宣伝文句はすごい。引用してみよう。 僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスのオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやすい数学の記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理、Perlの文字列処理、Matlabの線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語。インタラクティブに使えて、かつコンパイルできる言語が欲しい。 (そういえば、C言語の実行速度が必要だってのは言ったっけ?) こんなにもワガママを言った

                                                            • Rustで自作プログラミング言語を自作x86_64アセンブラでセルフホスティングした記録

                                                              この記事は言語実装 Advent Calendar 2022の23日目の記事です。 導入 2021年、私は llrl という自作プログラミング言語のセルフホスティングに取り組みました。 セルフホスティングには成功し、生成された処理系の実行ファイルのバイナリが完全一致するところまで辿り着きましたが、この言語処理系のバックエンドは「LLVMを使う」で終わっていたので、バックエンドの実装にもっと目を向けたいと思いました。そこで2022年は、この言語処理系に 新たにx86_64を直接ターゲットとするバックエンドを追加し、LLVMを用いずにセルフホスティングできるようにしました。 本記事はこの取り組みの振り返りとなります。 自作プログラミング言語の特徴とバックエンドの要件 llrlには大きな特徴が2つあります。 Hindley-Milnerベースの型推論による静的型付け (+型クラス) Lisp-l

                                                                Rustで自作プログラミング言語を自作x86_64アセンブラでセルフホスティングした記録
                                                              • Pythonで7種のソートを実装して、性能を比較してみた - Qiita

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

                                                                  Pythonで7種のソートを実装して、性能を比較してみた - Qiita
                                                                • C言語講座インデックス : プログラミング指南 - Code Knowledge

                                                                  プログラミング指南 - Code Knowledge ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

                                                                    C言語講座インデックス : プログラミング指南 - Code Knowledge
                                                                  • インタプリタは「コードを1行ずつ機械語に変換する」はガセネタ - Qiita

                                                                    はじめに 多分これはガセネタです。おそらく日本だけで出回っているガセネタです。インタプリタにはそのような定義はありません。インタプリタは「ソースコードを読み込んで意味を解釈して実行するプログラム」 です。「1行ずつ」は些細な間違いとして「機械語に変換する」は完全に間違いです。ある程度詳しい人にとっては常識だと思うのですが。 おそらくコンピュータは機械語しか動かせないから、インタプリタも最終的に機械語に変換しているはずだという間違った思い込みからこのガセネタは広まってしまっているのでしょう。機械語に変換するのは面倒な処理です。速くなるかもしれませんが変換処理しなくて良いのだから普通はしませんよ。 コンパイラとインタプリタの定義 コンパイラとは コンパイラとは、ソースコードを元に実行可能なプログラムを生成するためのプログラムです。ユーザーは(ソースコードではなく)別に生成されたプログラムを実行

                                                                      インタプリタは「コードを1行ずつ機械語に変換する」はガセネタ - Qiita
                                                                    • GitHub - nanochess/bootLogo: Logo language in 508 bytes (x86 boot sector)

                                                                      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

                                                                        GitHub - nanochess/bootLogo: Logo language in 508 bytes (x86 boot sector)
                                                                      • Python 3.11の新機能(その2) 特殊化適応的インタープリタ - python.jp

                                                                        特殊化適応的インタープリタ(PEP 659: Specializing Adaptive Interpreter) は、 Python 3.11の新機能(その1) CPython高速化計画 で紹介した CPython 高速化計画 の一環として導入された新機能で、実行中にプログラムをより効率的な処理に書き換えて高速化する仕組みです。 バイトコード¶Pythonはプログラムを実行するとき、ソースコードをコンパイルしてバイトコードと呼ばれる実行用のデータを生成します。例えば、次の関数 func_add() は、次のようなバイトコードに変換されます(Python 3.10の場合)。関数のバイトコードは、dis.dis()関数 で出力できます。 >>> dis.dis(func_add) 2 0 LOAD_FAST 0 (a) 2 LOAD_FAST 1 (b) 4 BINARY_ADD 6 RET

                                                                        • 【連載】Windows 10で始めるC言語開発

                                                                          Windows 10でC言語開発をしよう! Windows APIで行く【Microsoft C/C++】(2)

                                                                            【連載】Windows 10で始めるC言語開発
                                                                          • cc, gcc, g++の違い - kamocyc’s blog

                                                                            C++は初心者なので調べたことをメモ. C++のコンパイルに使うcc, gcc, g++コマンドの違いについて(Ubuntu 18.04) 元ネタ: c++ - Difference between CC, gcc and g++? - Stack Overflow c++ - What is the difference between g++ and gcc? - Stack Overflow まず,gccとg++の違い.これはC用とC++用の違いである. gccは,GNU C Compilerの意味 g++は,GNU C++ Compilerの意味 なお,gccとg++はともにGNU Compiler Collection(Wikipedia)のcompiler-driver(コンパイラを呼び出すプログラム). ただし,実体としては,g++はgccにオプションを追加して呼び出すことと

                                                                              cc, gcc, g++の違い - kamocyc’s blog
                                                                            • Wayback Machine

                                                                                Wayback Machine
                                                                              • [EN] Writing a Compiler is Surprisingly Easy (part 1)

                                                                                Part 1: expressions, arithmetic Part 2: statements, control flow Ever since I was a teenager I wanted to create my own systems programming language. Such a programming language would certainly have to be compiled to native code, which meant I'd have to write a compiler. Even though I managed to write several half-working parsers, I'd always fail at the stage of generating assembly code, as the tas

                                                                                • GitHub - mattwparas/steel: An embedded scheme interpreter in Rust

                                                                                  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

                                                                                    GitHub - mattwparas/steel: An embedded scheme interpreter in Rust