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
Today we’re excited to announce the release of TypeScript 5.4! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos, issues with null and undefined, and more. Types also power TypeScript’s edi
Why Elixir Is the Best Language for Building a Bootstrapped, B2B SaaS in 2024 [This article is the companion to my presentation for CodeBEAM America 2024, Elixir is the One-Person Stack for Building a Software Startup. You can download the slides as a PDF or view them in Google Slides.] I’d like to share why I chose Elixir as the programming language (and really, as we’ll discuss, the full stack)
この記事は、Rustその2 Advent Calendar 2019の22日目の記事です。 はじめに Rustのコンパイラは内部でLLVMを利用しています。 LLVMとはいわゆるコンパイラ基盤というもので、Rustのコンパイル側でLLVMの中間コード(IR)まで生成できたら、あとはLLVM側が最適化や実行ファイルの作成までを行ってくれます。 Rust Blogの記事「Introducing MIR」の中にある画像が大変わかりやすいので、そちらを引用させていただきます。 ビルドの流れ このコンパイラ基盤の視点から言うと、Rustコンパイラはフロントエンド、LLVM側はバックエンドという位置づけです。 LLVMが様々な環境で動くプログラムを生成できるからこそ、Rustも多くの環境で動くプログラムを比較的容易に生成できるわけです。 プログラムの最適化技術についても、LLVM側でそのノウハウを洗練
The Rust team has published a new version of Rust, 1.59.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. Today's release falls on the day in which the world's attention is captured by the sudden invasion of Ukraine by Putin's forces. Before going into the details of the new Rust release, we'd like to state that we stand in solidarity with the
Published 04 Mar, 2024 by Louis Pilfold Today Gleam v1.0.0 has been released! This is the first “stable” release of the language (more on what that means later) and a big milestone for the ecosystem. It has been a long journey and I’m proud of both the technology and the community that we’ve built here with Gleam. Thank you so much to everyone who has taken part in any way, you’ve all contributed
Simon Peyton Jones, Tim Sweeney Lennart Augustsson, Koen Claessen, Ranjit Jhala, Olin Shivers Epic Games December 2022 Tim’s vision of the metaverse Social interaction in a shared real-time 3D simulation An open economy with rules but no corporate overlord A creation platform open to all programmers, artists, and designers, not a walled garden Much more than a collection of separately comp
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で開けます。 訳注:日本語のHTML版はhttps://doc.rust-jp.rs/book-ja/で公開されています。 rustupを使ってオフラインで読むことはできません。 また、コミュニティによるい
Cycloneとは CycloneはRustのリージョン推論の原型のひとつになった実験的なプログラミング言語です。 現在はメンテナンスされていませんが、歴史的な意義があることからCycloneのビルド環境を整備してみました。 (完結するかは未定) ソースの取得 CycloneのWebサイトは生きているので、ソースはCycloneのDownloadページから取得できます。しかしここに不穏な文言があります。 If you use gcc 4, you must get the latest version of Cyclone from SVN (see below). 最新安定版よりも新しい版があること、またgccのバージョンに依存して壊れることが読み取れます。そしてSubversionと書いてあることから嫌な予感がした人もいると思いますが、このリポジトリは既に動いていません。 というわけで
2進浮動小数点数の10進表記には様々な問題があります。 10進で有限小数として表せる数であっても、2進小数では有限小数で表せない(したがって2進浮動小数点数に変換すると誤差が出る)ことは周知かと思います。例えば 0.1 という実数を2進で表すと という循環小数になり、有限桁で正確に表すことができません。 10進小数を正確に表したい場合は10進浮動小数点数(あるいは10進固定小数点数など、10進に基づいた小数型)を使うのが適切です。逆に、2進浮動小数点数を正確に表現したい場合はそれに適した記数法を使うのが適切です。 2進浮動小数点数に適した記数法として、1999年に制定されたC言語の規格(C99)では、16進法を使って浮動小数点数を記述する方法が導入されました。 16進の1桁は2進の4桁に対応し、2進法で有限小数で表せる数は16進でも有限小数で表せます。逆も然りです。16進表記は浮動小数点数
いつも心に省メモリ。どうも、かわしんです。今日はメモリアロケーションについてのポエムを綴ります。さらっと流してください。 ちなみに、ここでいう省メモリとはメモリサイズだけの話ではありません。 メモリをアロケート(確保)するとき、あなたはどんな感情を抱くだろうか?おそらく何も感じない人がほとんどだろう。というかメモリをアロケートしたことにすら気づいていないのかもしれない。 僕はメモリをアロケートするたびに心が痛む。本当はアロケートしなくてもいいのではないか、別のところでまとめてアロケートした方がいいのではないか?色々悩んだ結果、苦渋の選択としてメモリをアロケートするのだ。 メモリアロケーションのコストとは何か 僕がなんとなくメモリアロケーションに罪悪感を覚え始めた時、僕はメモリアロケーションのことを何も知らなかった。大きなメモリを確保するほどコスト(確保に必要な計算時間)が大きくなると思って
先日、Appleが設定ファイルのためのプログラミング言語「Pkl」を公開して話題になっています。そもそも、設定ファイルにどのような形式を採用するかは、アプリの使い勝手を大きく左右するものです。今回は話題の「Pkl」について紹介します。 Appleがオープンソースで公開した「Pkl」を使えばいろいろなデータ形式に変換して出力できる 設定ファイルの重要さについて 地味にアプリの使い勝手を左右するのが「設定ファイル」です。もちろん、多くのユーザーが利用するようなアプリであれば、GUI画面を持つ親切な設定ツールも用意されていることでしょう。 しかし、多くのコマンドラインツールや、個人が開発したツールなどの設定を行うには、設定ファイルを直接書き換えることで、アプリの挙動を変えることができるのが一般的です。そのため、アプリの設定ファイルを開いてみて、そのファイル形式や設定の複雑さや幻滅することも多々あ
飛び恥 飛び恥、英語ではFlight Shameという言葉があることを知った。環境に配慮して、飛行機での移動を控えようというものだ。ヨーロッパで盛んになった運動で、ドイツでは国が積極的に国民に呼びかけを行っており、フランスでは鉄道で2時間半以内で移動できる距離の飛行機の運行が禁止された。 抜け道があるとか、どこまで二酸化炭素排出量の削減に効果的であるのかという疑問もある。グリーンロンダリングという言葉もあるように、環境に配慮しているというポーズだけではないのかなどの声もあるようだが、このような動きは今後も確実に増えていくだろう。 グリーンコーディング IT業界でも、グリーンITという言葉がある。IT自体をグリーンにしよう、すなわちIT利用時にできるだけ環境に優しくするという考えと、ITを活用することで環境負荷を減らそうという考えの双方を含んだ言葉だ。 前者はIT機器や環境、利用方法をグリー
// ExampleApp.vala public class ExampleApp : Gtk.Application { public ExampleApp () { Object (application_id: "com.example.App"); } public override void activate () { var win = new Gtk.ApplicationWindow (this); var btn = new Gtk.Button.with_label ("Hello World"); btn.clicked.connect (win.close); win.child = btn; win.present (); } public static int main (string[] args) { var app = new ExampleApp ()
Goとは、Google社が開発したプログラミング言語です。並行処理が得意で実行速度が速く、有名サービスで使われています。シンプルで、プログラミング入門者が学びやすいのも特徴です。 この記事では、Go言語が得意なことや開発できるものの種類を解説します。将来性や学習方法なども紹介するので、Go言語に関して知るべきことをまとめて知れます。 ちなみにGoは案件の単価が特に高い言語です。Goを身につけるか悩んでいるなら、ぜひじっくりとお読みください。 Goとは?成り立ちや特徴、メリット Go言語とは、Googleが2009年に開発、2012年にリリースしたプログラミング言語です。Goは簡易な記述と高速処理を同時に実現したのが最大の特徴です。 Go以前の言語は、処理が早いものは記述が複雑で、記述が簡単なものは処理が遅い場合がほとんどでした。そこで、C言語の設計者であるケネス・レイン・トンプソン、UNI
Biscuit Language The Biscuit Language (BL) is simple imperative programming language using LLVM backend implemented in C. Language syntax and all it's features are still in development and not ready for 'real' use yet. Biscuit is designed to be simple, fast and explicit. Simple small language. Manual memory management. ABI compatibility with C libraries. Game development oriented. Compilation to n
言語実装 Advent Calendar 2022の6日目です。 本記事ではLL(1)の素晴らしさと難しさについてDesk言語の開発の体験から語ります。 LL(1)とは LL(1)についてご存知でしょうか。 「LL(1)言語」「LL(1)文法」「LL(1)パーサ」でそれぞれ定義がありますが、一番分かりやすい「LL(1)パーサ」をざっくりいうと、ソースコードの頭から順番にトークン(ifや1や{など)を見ていきながらASTを構築するための情報を集める[1]パーサのうち、現在見ているトークンの種類を確認するだけで(それ以上の先読みなしに)ASTのノードの種類(IfやIntegerLiteralやBlock)を決定できるもののことです。 そしてLL(1)パーサでパースできるのがLL(1)文法であり、LL(1)言語であるというのがざっくりした説明です[2]。 次は、LL(1)パーサ(言語)のメリット
雑記Topに戻る レシート記述言語 一般社団法人オープン・フードサービス・システム・コンソーシアム(OFSC)は、2020年7月13日にレシート記述言語 ReceiptLine® (レシートライン)を新たなOFSC標準として公開しました。 ※「オープン・フードサービス・システム・コンソーシアム」は、情報システム先進化を目指す外食企業からなる一般社団法人です。 ReceiptLine のテストにはこちらのページが使えます。例えば、以下のコードをレンダリングすると下の図のようになります。 {i:iVBORw0KGgoAAAANSUhEUgAAAIAAAAAwAQMAAADjOuD9AAAABlBMVEUAAAD///+l2Z/dAAAAZklEQVQoz2P4jwYYRrrABwYGOwYG5gMMDBUMDPxAgQcMDDJAgQYGhgJcAv//yMj//9/8//+HerAZRAsA
Haku A toy functional programming language based on literary Japanese. Is Haku for you? Haku lets you write programs that look very much like written Japanese. So you need to be familiar with written Japanese to program in Haku. I have added translations and explanations to the documentation. Haku is an experiment, not a practical programming language. Several of its features are rather contrary.
Clawn is a programming language developed with the goal of making it easy to write high-quality, safe programs. Currently, Clawn has the following features Simple syntax Statically typing Higher rank polymorphism Safe "any" elegant C FFI Automatic memory management (WIP) I value a gentle learning curve, and Clawn is designed to be easy to learn. For example, Clawn's function definitions have no ty
Hylo (formely Val) is a programming language that leverages mutable value semantics and generic programming for high-level systems programming. Hylo aims to be: Fast by definition: Hylo is compiled ahead-of-time to machine code and relies on its type system to support in-place mutation and avoid unnecessary memory allocations. Hylo avoids hidden costs such as implicit copies and therefore avoids h
Many JSON parsers (and many parsers in general) use recursion to parse nested structures. This is very convenient while programming the parser, but it has consequences on what the parser can parse: indeed, the size of the call stack is usually limited to a value several orders of magnitude smaller than the available RAM, and this implies that a program with too many levels of recursion will fail.
プログラミング言語を教える人々の中には、「1つの言語を習得することができれば、新たな言語も簡単に習得できる」と主張する人が多く存在します。ところが、ミシガン大学で電気工学とコンピューターサイエンスの教授を務めるMark Guzdial氏はこの主張に疑問を投げかけており、現代におけるプログラミング言語習得の実情にはそぐわないと主張しています。 Why Did We Ever Think the First Programming Language Didn't Matter? | blog@CACM | Communications of the ACM https://cacm.acm.org/blogs/blog-cacm/253393-why-did-we-ever-think-the-first-programming-language-didnt-matter/fulltext G
RedMonkは過去7年間のランキングの推移グラフも出していて、これを見てもTypeScriptの飛躍は目覚ましいものがある。何しろランキング20位以内に初めて登場したのが2017年1月の調査で、それから3年足らずで10位に食い込んだ。 TypeScriptに限らず順位の変動は大きい。2013年以降ではClojure、Go、Swift、TypeScript、Kotlinが新たにトップ20位にランクインした。トップ20入りはしていないけれどRust、Julia、Elixirなどが控えている。逆にCoffeeScriptやGroovyのように、2013年ごろは20位内にランクインして勢いがあったが最近はパッとしない言語もある。 RedMonkの調査結果を見ると、2015年から新しい言語が登場したり順位が入れ替わったりする頻度が激しくなっている。2015年はGoが初めてトップ20位のランキング入
❧Frontmatter Dedication Acknowledgements I.Welcome 1.Introduction Design Note: What’s in a Name? 2.A Map of the Territory 3.The Lox Language Design Note: Expressions and Statements II.A Tree-Walk Interpreter 4.Scanning Design Note: Implicit Semicolons 5.Representing Code 6.Parsing Expressions Design Note: Logic Versus History 7.Evaluating Expressions Design Note: Static and Dynamic Typing 8.Statem
この度、安定版 K2 コンパイラーを備えた Kotlin 2.0 をリリースすることになりました。このコンパイラーはマルチプラットフォームとしてゼロから開発されており、コードをより深く理解して 2 倍の速度でコンパイルすることが可能です。 Kotlin は JVM 言語として始まり、その簡潔さと安全性により、開発者をすぐに魅了しました。 AWS、Adobe、Atlassian、Google などの大手企業が採用し、サーバーサイドで急速に普及しています。 Kotlin は Android 開発の主要言語としても採用されるようになり、上位 1,000 タイトルに入る Android アプリのうち 95% が Kotlin コードを使用しています。 JetBrains は Kotlin Multiplatform(KMP)を導入することで Kotlin の限界をさらに押し広げ、サーバーサイド、ウ
Summary I argue for wider usage of delimiter-first in the code three friends [tic, tac, toe] becomes three friends ・tic ・tac ・toe. A new top-level syntax for programming languages is proposed to show advantages of this method. New syntax is arguably as simple, but more consistent, better preserves visual structure and solves some issues in code formatting. Related: comma-first formatting A well-kn
I’ve become convinced that “little languages”—small languages designed to solve very specific problems—are the future of programming, particularly after reading Gabriella Gonzalez’s The end of history for programming and watching Alan Kay’s Programming and Scaling talk. You should go check them out because they’re both excellent, but if you stick around I’ll explain just what I mean by “little lan
Glispを開発している中で、このエントリにも上げたような問題があったので言語処理系自体を、一般的なLisp評価器とは異なった、よりGUIやデザインとの親和性の高いものへとアップデートしようとしています。しかしまた色々行き詰まった所が出てきたので、言語化も兼ねて今一度悩んでいるところを書き出しておきます。 言い訳までに、僕はただの映像専攻の美大中退者でして、言語処理系に関して何の専門教育を受けたこともないので、車輪の再発明をしているような予感もありますし、以下の考察も適切ではないかもしれません。もし、この辺勉強するとスッキリするよ~とか、こういう概念があるんよ~みたいなアドバイスがあれば、断片的にでも構わないので教えてくださるととても嬉しいです。 Lispの何が問題だったか? そのシンボルが指し示す値、関数の実体、そして型が、評価されるまで分からない(Lispは動的型付けなので)その関数の
Yatima is a Lean 4 compiler backend targeting the the Lurk language for recursive zkSNARKs, enabling zero-knowledge proofs of Lean 4 execution. Additionally, Yatima has its own Lean 4 implementation of a kernel for the Lean 4 core language, which can be compiled to Lurk to allow zero-knowledge proofs of Lean 4 typechecking. By verifying a zero knowledge proof that a Lean 4 declaration has passed t
MacにPythonを複数インストールしてゴチャゴチャしてきたので、初心に返って綺麗に入れ直そうという思い至った際の作業のメモです。 これからMacでpython開発環境を構築する際のガイドになれば幸いです。 MacBook Pro 13" (mid-2020) / Mac Mini M1 macOS BigSure Version 11.4.x Xcode Version 12.5 XCodeをインストールする Appleの提供する統合開発環境(IDE)のXcodeは色々とライブラリを提供してくれるので、便利な子です。入れておきましょう。 入手はAppStoreのXcodeのページを踏むとMacのアプリであるAppStoreを開いてくれますので、インストールボタンを押してからのんびりお茶でもいれててください。 終わったら、XCodeのCommand Line Toolsが次のステップに必
The Rust team is happy to announce a new version of Rust, 1.60.0. Rust is a programming language empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.60.0 with: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes
greet <| person::ron 3 . greet : person -> text = | #cowboy -> "howdy" | #ron n -> "hi " ++ text/repeat n "a" ++ "ron" | #parent #m -> "hey mom" | #parent #f -> "greetings father" | #friend n -> "yo" |> list/repeat n |> string/join " " | #stranger "felicia" -> "bye" | #stranger name -> "hello " ++ name . person : #cowboy #ron int #parent (#m #f) #friend int #stranger text "hi aaaron" Scrapscript i
こんにちは、hachi8833です。RubyKaigi 2023@松本に行ってまいりました。 イベント感想などは他の皆さまが続々ネット上のブログにアップしているのでそちらにおまかせするとして、今回のRubyKaigiのDay1で発表されていたlramaが気になったので手短にメモします(個人的にPEGパーサージェネレータに関心があるので)。 Lramaでリャマと読みます。LALR parser generatorのYaccやBisonの流れをくむものとして、リャマという名前にしました。LR parser generatorなのでLlama (LL)ではなくLrama (LR)と綴ります。 Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した - かねこにっきより lramaパーサーがmasterにマージされた 発表: The f
Oct 2019 Bel is a spec for a new dialect of Lisp, written in itself. This should sound familiar to people who know about Lisp's origins, because it's the way Lisp began. It consists of two text files meant to be read in parallel: a guide to the Bel language, and the Bel source. For those who just want to see some code examples, there's a file of those. But of course the Bel source is also a code e
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く