並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 1133件

新着順 人気順

c++の検索結果161 - 200 件 / 1133件

  • マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに

    マイクロソフトは現在開発中のフレームワーク「.NET 7」で、ソースコードからターゲットプラットフォームに対応したネイティブバイナリをコンパイル時に生成するAOT(Ahead of Time)コンパイラを搭載する見通しだと、「Announcing .NET 7 Preview 3」で明らかにしています。 AOTコンパイラ、すなわち事前コンパイラとは、アプリケーションのビルド時にソースコードをコンパイルしてネイティブバイナリを生成する機能を備えています。 一般に「コンパイラ」とはこのAOTコンパイラのことを指すことが多いですが、アプリケーション実行時にソースコードや中間コードから動的にネイティブバイナリを生成するコンパイラのことをJIT(Just-in-Time)コンパイラと呼ぶのに対比して、あえて「AOTコンパイラ」と呼ぶことも最近では増えてきました。 現在、.NET対応のプログラミング言

      マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに
    • 新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話

      私は新たにプログラミング言語を学ぶとき、しばしば簡単なLisp処理系を作ってみます。いくつかの言語で取り組んでいるうちに、このLisp処理系群に小さな共通基盤も出来上がったりしているので、これを紹介しつつ、Lisp処理系の実装がプログラミング言語の学習にどう丁度いいのかを紹介します。 Rosetta Lisp 自作のLisp処理系群を、ロゼッタ・ストーンから名を借りてRosetta Lispと呼んでいます。Rosetta Lispは以下のような特徴を持ちます。 一定の共通した言語仕様・VMの仕様に基づいて動作する Rosetta Lispは (Rosetta Lispに準拠するLisp処理系群は)、いずれも共通した命令セットのVM上でLispプログラムを実行するように実装されています。 Lispの簡単な実装では、よくインタプリタ形式が採用されます。kanaka/malやrui314/min

        新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話
      • コンパイラのいじめかた / How to fight the compiler

        C++MIX #6

          コンパイラのいじめかた / How to fight the compiler
        • [0.0, 1.0) の乱数を得るための“本当の”方法

          レイトレ合宿9(*)のセミナー発表スライドです。 * https://sites.google.com/view/rtcamp9/home - 2023/09/08 “除算法2”追記。(@Reputelessさんありがとうございました)

            [0.0, 1.0) の乱数を得るための“本当の”方法
          • AWSも支援--プログラミング言語「Rust」人気が拡大

            Catalin Cimpanu (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 編集部 2019-11-04 08:30 AWSによる支援は、Rustチームに「AWSプロモーション・クレジット」を提供するという形態をとる。Rustチームはこのクレジットを用いてAWSのインフラを利用して、同言語を開発していくというわけだ。 RustコアチームのメンバーであるAlex Crichton氏は、「Rustプロジェクトが長年使ってきているAWSによってRustのインフラが支援されるのは、非常に喜ばしいことだ」と述べている。 Crichton氏は「この支援によってRustは、コンパイルした成果物の配布や、crates.ioクレートのダウンロード、すべてのプロセスの結合に必要なプロジェクト内での自動化のために、AWS上でインフラをホストし続けられるようになる。これらのサービ

              AWSも支援--プログラミング言語「Rust」人気が拡大
            • Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita

              Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較KotlinRustベンチマークJuliaDijkstra これは何 最短経路探索のアルゴリズムを使っていくつかの言語の性能がどれくらい違うかを調べてみました。 Python は手軽に実装できるけど遅い、Go は 早いけど C++ よりは遅い? 本当? のような疑問を一定解消したかったというのが動機です。 前提条件など 対象とする言語 本命 Go, Rust, C++ 興味本位 Julia Python より段違いに早ければもう少し掘ってみたい 興味本位 Kotlin 意外とトップ集団に肉薄するのではないか 参考 Python JavaScript 性能差のイメージとしては Rust == C++ > Go >> Kotlin >>> JavaScript > Python == J

                Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita
              • C++ 標準ライブラリ - C++ の歩き方 | cppmap

                Home C++ 規格 記事 学習 ライブラリ ツール 貢献 C++ 標準ライブラリ¶ C++ の規格で定められた標準ライブラリに含まれるヘッダの一覧です。 リファレンス Web サイトは en: cppreference.com, jp: cppreference.com (日本語訳) cpprefjp: cpprefjp に対応しています。 標準ライブラリ¶ ヘッダ リファレンス 実装 バージョン

                • オブジェクト指向は継承で多態するプログラミング - きしだのHatena

                  オブジェクト指向って継承による多態があるからこそなんだけど、継承が非推奨になって以降に雰囲気でオブジェクト指向を知った人には、継承はオプションでカプセル化だけでオブジェクト指向って言ってしまいがちに思います。 実際はカプセル化はオブジェクト指向固有じゃなくて、クラスでカプセル化を実現してるだけです。 さまざまな人のオブジェクト指向の定義 本来ならどのように継承こそがオブジェクト指向なのかという説明をするんですが、かなり長くなりそうなので、とりあえずはいろいろな人たちのオブジェクト指向の定義を抜き出してみます。 「ここに挙がってるのはオブジェクト指向の一派にすぎない」というような意見もありますが他の派閥についてまとまって定義され共通認識になっているようなものは見当たらないので、プログラミングの指針には なりづらいと思います。 ストラウストラップ C++を産んだストラウストラップは「C++の設

                    オブジェクト指向は継承で多態するプログラミング - きしだのHatena
                  • ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ

                    こんにちは。PlayStation 5が一向に買えない@giginetです。普段はモバイル基盤部というところでiOSの基盤開発をしています。 皆さん、行動していますか?我々は日々Webサービス上で様々な行動をしています。サービス開発において、改善に活かすための効率的な行動ログの収集方法はしばしば課題になります。 今回は、サービス開発者がモバイルアプリ上で簡単にログを定義し、分析を行えるログ基盤を導入した事例について紹介します。 行動ログとは何か モバイルアプリの行動ログとは、ユーザーのアプリ上の操作や利用状況を取得、集積するためのものです。 例えば、特定の画面を表示したり、特定のボタンをタップしたり、といったユーザー操作を起点として送信されています。 集められたログは、サービス開発のための分析や実態把握に役立てられます。 最近はFirebase Analyticsなど、PaaSの形態で提供

                      ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
                    • 型変換やオブジェクト変換の関数/メソッドに対する習慣や知見

                      Noriyuki OHKAWA @notogawa データ型Aとその操作を定義しているモジュールX.Y.Aてよく作ると思うけど,型Bと型Aの間の変換操作をX.Y.A内から露出させるときにfromA/toAはやめてくれー.toB/fromBにして欲しい.import X.Y.A as AでA.toB/A.fromBだから. 2016-11-18 09:52:37 Noriyuki OHKAWA @notogawa データ型Aとその操作を定義しているモジュールX.Y.Aてよく作ると思うけど,型Bと型Aの間の変換操作をX.Y.A内から露出させるときにfromA/toAはやめてくれー.toB/fromBにして欲しい.import X.Y.A as AでA.toB/A.fromBだから. 2016-11-18 09:52:37

                        型変換やオブジェクト変換の関数/メソッドに対する習慣や知見
                      • C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita

                        追記: 本記事は g++ について書かれており、clang については補足で述べる程度でしたが、clang側の検証結果が間違っておりました。 別途 clang++ で検証した記事も書きましたので、ご覧いただけますと幸いです。 本記事の目的 昨日、株式会社フィックスターズの「Fixstars Tech Blog /proc/cpuinfo」に以下の記事が掲載されました。 RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo 本記事では、上記記事の 手元環境における追試 C++の敗因/Rustの勝因分析 条件をある程度統一した際のベンチマーク結果 の3点を行います。 ベンチマーク環境 OS Fedora 30 CPU AMD A6-1450 Memory DDR3-1333 4GB x 1 (4GB) GCC 9.2.1 Rustc 1.39.

                          C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
                        • 開発イテレーション偏重 - 兼雑記

                          開発イテレーションを早くすれば、かなりの問題が勝手に解決される、と信じています。なんか最近、他の要素を軽視しすぎていたり、特にイテレーション速度に影響しなさそうなことすらしている気がしていて、信仰とかのレベルかもしれない、という気がしてきたので、ちょっと書いてみようかなと。主に C++ の話です。 仕事とかしてると良い判断力が求められたりしますが、判断というのは結構難しいですよね。アプローチ A と B で悩んだ時に、手が速ければ両方できたりします。開発イテレーションを無限に速くすると、必要とされる判断力はゼロに漸近していきます。やったね。 2手で変更の正当性を高速に確認できるようにする make (かその他のビルドコマンド)てやったらビルドができて、 make check (かその他のテストスクリプト)てやったら遅くないテストが全部走る、という体勢が好きです。試すためにはあっちのディレク

                            開発イテレーション偏重 - 兼雑記
                          • golangではスタックとヒープを気にする必要が無い

                            調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *Animal { return &Animal{} } C/C++ ではローカル変数のポインタを戻り値とした場合、 スタック領域のポインタを関数外に渡してしまうため、コンパイル時点で警告が表示されます (なぜエラーにしない) 実行時には最悪、セグメンテーションフォールトで落ちます そのため、malloc や n

                              golangではスタックとヒープを気にする必要が無い
                            • C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?

                              回答 (9件中の1件目) > C++のenumという型の使い方がよくわかりません。 C++に限りませんが、Enumは基本的にはカテゴリ変数を表すために使用します。例えば曜日には月曜日から日曜日の7通りまでしかなく、曜日を表す変数を整数(0-6)や文字列(mon, tue, …, sun)で扱おうとすると関数の引数で与えられたときにその範囲外の値が入ってきたかどうかをいちいちチェックしないといけません。しかし、事前にEnumでMonからSunまでの7つの値しかないDayOfWeekという型を定義しておくと、一度DayOfWeekに変換しておけば以降はもうチェックをする必要が無いことが型レ...

                                C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?
                              • データベースライブラリTkrzwの初版リリース - 豪鬼メモ

                                データベースライブラリであるTkrzwの初版をリリースした。Kyoto Cabinetの正式な後継製品である。本家のサイトはここである。設計目標の通り、高速かつ堅牢で多目的に使える実装になったと思っている。私の下手な英文を読ませるのも忍びないので、ここに概要を書いておこう。 ダウンロードとインストール このディレクトリにソースファイルのパッケージが置いてあるので、ダウンロードする。あとは典型的なインストール手順を踏襲すればよい。 $ tar zxvf tkrzw-0.9.1.tar.gz $ cd tkrzw-0.9.1 $ ./configure $ make $ make check $ sudo make install自分の環境でもテストをしたいという人は以下のコマンドを実行してもよいし、しなくてもよい。テストケースはGoogle Testを使って書かれているので、予めそれをインス

                                  データベースライブラリTkrzwの初版リリース - 豪鬼メモ
                                • ボレロ村上逝去

                                  村上原野 aka ボレロ村上, 中3女子 逝去 ボレロ村上、中3女子ことC++プログラマーで陶芸家の村上原野の訃報が流れている。それによるとどうやら、2月16日未明に、陶芸作品を製作中に倒れ、翌朝に発見されたようだ。 2月15日の21時51分のtweetに体調の変化を示唆する書き込みがある。倒れたのが16日の未明とあるので、そこから6時間後ということになる。 この書き込みから急な脳梗塞ではないかと思われる。体調の変化を感じたら病院に行くべきなのだろう。 首の後頭部の付け根がゴリゴリビキビキして頭までジンジンきてやばい — 狂える中3女子ボレロ村上/陶芸C++er (@bolero_MURAKAMI) February 15, 2020 大一報はおそらく猪風来美術館のFacebookで、これは20日に公開されたとのことだが、我々プログラマーの界隈に知られるまでに9日間を要したようだ。 岡山に

                                  • ブラウザはCSSのセレクタを右から読む、ほんまか? - Qiita

                                    先日、 ブラウザ君「ワイはCSSのセレクタを右から読むんや」 という記事を読みまして、ちょっと気になったので後で確かめようと思っていたのですが、なんとなくそのままになってしまいやや旬を逃した感がありつつ、ツッコミを入れてみようと思います。 なお『ワイ「ほげほげ」』みたいな形式は使いません1。恥ずかしいので。 私は仕事でChromiumのソースコードをよく読んでいるので、ChromiumのソースコードからCSSの処理を見つけて、それを基準にして解説しようと思います2。そのため、他のブラウザのレンダリングエンジンと異なる最適化が施されている可能性があります。また、現在のソースコードがそうでも、将来的に別の方法に変更される可能性もあります。あくまで、ブラウザの処理の一例であることをご了承ください。 ChromiumはC++で開発されていて、私もC++畑の猫ですが、今回の記事は随所にリンクを挿入し

                                      ブラウザはCSSのセレクタを右から読む、ほんまか? - Qiita
                                    • 今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様

                                      はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。本連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 本記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command

                                        今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様
                                      • Rustのビルドを高速化する方法 | POSTD

                                        Rustコードのコンパイルが遅いことは誰でも知っています。しかし筆者は、世の中のほとんどのRustコードはコンパイルをもっと速くできると強く感じています。 例えば、つい最近の記事にこのように書かれていました。 一方、Rustでは、プロジェクトやCIサーバーの性能にもよりますが、 CIパイプラインの実行に15~45分かかります。 これは筆者には理解できません。GitHub Actions上にあるrust-analyzerのCIの所要時間は8分です。しかも、これは100万行の依存関係に加え、20万行の独自コードが記述されたとても大規模で複雑なプロジェクトでの話です。 確かに、Rustは根本的な部分で非常にコンパイルが遅いのは間違いありません。Rustはジェネリクスのジレンマにおいて「遅いコンパイラ」を選び、全体的な設計思想としてコンパイル時間よりもランタイムを優先しています(この点に関する優れ

                                          Rustのビルドを高速化する方法 | POSTD
                                        • 自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば

                                          低レイヤを知りたい人のためのCコンパイラ作成入門 まさに低レイヤのことが分かっておらず、以前から気になっていたこの本。取り掛かってみたところ思いのほかスイスイ進められて、勢いに乗ってセルフホスト(自分が書いたコンパイラで自分自身をコンパイルするところ)までいけたので記念に書いておく。正確には C コンパイラのサブセットです。 GitHub - motemen/mocc 全体的な進め方は、 上記の本の通りに進めていく。 それ以降は自作の 8queen が普通に書けるように機能を強化。 それ以降はセルフホストを目標に進める。 プリプロセッサやリンカは作らず、C からアセンブリまで。 という感じ。自分は手を動かさないと進んでる気がしないので、まずは書いてみつつわからない所があれば調べる、というスタンスでいく。 あと、せっかくなので RISC-V の勉強もしたかったのでこれ向けに書く。なので実行は

                                            自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
                                          • Nuxt TypeScript

                                            Code completion One of the biggest advantages of TypeScript is its code completion and IntelliSense. IntelliSense provides active hints as a code is added. Type safety Types increase your agility when doing refactoring. It’s better for the compiler to catch errors than to have things fail at runtime. Code quality Types have a proven ability to enhance code quality and understandability. Large team

                                              Nuxt TypeScript
                                            • 開発者から見た V 言語とその(誇大)広告について

                                              V 言語について 一時期話題になった V 言語ですが、みなさまは覚えているでしょうか。 Go にインスパイアされたシンプルな構文、NoGC かつ Rust のような難しさもないメモリ管理。小さいバイナリサイズと高速なコンパイル、ホットリロードなど、様々な目玉機能を謳って登場した言語でした。 発表するが公開しない。バイナリは公開するがオープンソースにはしないなど、期待感をあおる情報の出し方をしたのもあって、当初こそそれなりに話題になりましたが、今となっては誰も話題にしなくなった感は否めません。 ところで、会社が消滅して無職になった私は数か月前から V 言語の開発に参加しており、執筆時点では全体で 23番目、直近1か月で 7番目の Contributor です。 私が知る限り、アクティブに活動している日本人の開発者はほとんどいません。 そこで、コミュニティにも慣れ V 言語のことが少しづつわか

                                                開発者から見た V 言語とその(誇大)広告について
                                              • 2019 Javascript engine 俯瞰 - abcdefGets

                                                2019 Javascriptエンジン俯瞰 こんにちは 2019 Javascript Advent Calendarの11日目です 2019はJSエンジンが新たに2つもリリースされた まずFacebook産のhermes もう一つがFFMPEG作者のbellardが実装したquickjs この2つを見ていこうと思う ちなみにhermesは以前にも書いたので正直あまり書くことは無い http://abcdef.gets.b6n.ch/entry/2019/07/22/142510 特徴 hermes C++ FacebookがReact Nativeの高速化用に実装したエンジン レジスタマシンのバイトコードインタプリタを搭載 flowを解釈できる commonjsを解釈して実行できる バイトコードのexportとimportも可能でスタートアップタイムを高速化することが可能 JITはx86

                                                  2019 Javascript engine 俯瞰 - abcdefGets
                                                • Erlangについて思うところ

                                                  職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。 Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。 終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。 func() -> expr1 , % カンマ expr2 , % カンマ expr3 . % ドット このような文法はリ

                                                  • セルフホスト可能なCコンパイラを書く

                                                    最近、コンパイラを書くことが流行っているようだ。流行に乗ってやってみたらいろいろな知見が得られたので紹介したい。 コンパイラを書くと一口に言ってもいろいろなスコープがある。ここではC言語を用いてCコンパイラを書くことを選択した。C言語は言語仕様的にコンパクトで広く知られている。また、ツールとしてのCコンパイラも普及している。その場合、自分が書いたCコンパイラで、自分が書いたCコンパイラのソースコードをコンパイルすることが原理的には可能だ。これをセルフホストという。ひとつの到達目標として非常に興味深い。 当初は冬の間に終わらせる予定だったのだが春まで伸びてしまった。しかし、春になっても寒かったり雨で家に居る日が多く、アウトドアシーズンまでに目標のセルフホストを達成することができた。 昔、Cのインタプリタを書いたことがあったが、コンパイラを書くのは、はじめてである。時代も進んで開発手法が変わっ

                                                    • GPT-4は青色コーダーの夢を見るか - Qiita

                                                      はじめに 2023/3/14にOpenAIがGPT-4という新しいAIモデルを公開しました。 このモデルはさまざまなタスクにおいてChatGPT(GPT-3.5)を大幅に上回る結果を示しています。 この記事ではGPT-4を用いて競技プログラミングがどのくらい解けるのかについて調べてみました。 下馬評 OpenAIが公開した論文によると、GPT-4のCodeforcesレーティングは392だそうです。 これはパーセンタイルでいうと下から5%らしいので、 そこまで競技プログラミングが得意なわけではないようです。 ただし、おそらくこれはGPT-4が完全自動でチャレンジした場合のことだと思われます。 GPT-4が書いたコードを人間がレビューすることでバグを修正し、より難しい問題が解ける可能性があると 筆者は考えました。 TL; DR ChatGPTを用いてAtCoder Beginners Con

                                                        GPT-4は青色コーダーの夢を見るか - Qiita
                                                      • 世界のプログラミング言語(47) PythonのようにシンプルでC言語のように高速な言語Nimを試してみよう

                                                        NimはPythonのようにシンプルな構文を持ちながら、C言語と同等の速度で動かすことができるプログラミング言語です。そのため、ゲーム開発からシステムプログラミング、Web開発とさまざまな用途で活用されています。今回は、効率性と表現力が魅力のNim言語の魅力に迫ってみましょう。 シンプルな構文を持ち実行速度が速いNimでFizzBuzzを実行したところ Nimとは Nimは2008年にドイツの開発者アンドレアス・ランプフによって開発されたプログラミング言語です。最初のNimはPascalによって書かれており、その後すぐにNim自身で書き直されました。 Nimの特徴は、Pythonのようにスッキリとした構文を採用しており可読性が高いことです。型推論を備えていることから静的型付き言語ながら記述が少なくすみます。また、強力なマクロとテンプレートの機構を備えており、メタプログラミングが可能です。

                                                          世界のプログラミング言語(47) PythonのようにシンプルでC言語のように高速な言語Nimを試してみよう
                                                        • CUDAを一枚の絵にまとめてみた - OPTiM TECH BLOG

                                                          まえがき 初めまして、R&Dチームの宮﨑です。趣味はFPSをやってます。150時間やってますが未だにドンかつを食べられていません。普段は深層学習のベンチマークを取ったりしています。 実はひと昔前からあった深層学習。近年実用性が増して一大ブームとなっています。実用的になった背景の一つとしてGPUを用いた高速化により深層学習の学習及び推論が実用的な時間で実行できるようになったことがあります。NVIDIAから提供されるCUDAを用いるとC言語に拡張を加えた形式でCPU+GPUのヘテロジニアスコンピューティングを記述できます。 CUDAを使用するにはCPU+GPUの環境がどのようなハードウェア構成をしており、その上でCUDAがどのようなシステムを構築しているのかを理解する必要があります。この理解なしに漫然とサンプルコードを真似するだけでは意図通りのパフォーマンスが出なかったり、そもそもAPIの意味

                                                            CUDAを一枚の絵にまとめてみた - OPTiM TECH BLOG
                                                          • Elasticsearchで作るメディアサイト

                                                            体験メディアサイトYOKKA (よっか) のES活用例紹介 第41回Elasticsearch勉強会 2021.04.22 #elasticsearchjp

                                                              Elasticsearchで作るメディアサイト
                                                            • WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~

                                                              Infra Study 2nd #4「セキュリティエンジニアリングの世界」 https://forkwell.connpass.com/event/219136/

                                                                WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~
                                                              • 電子情報学特論:Chromiumのアーキテクチャを解き明かす

                                                                電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2020 April (๑>ᴗ<๑) * * * *

                                                                  電子情報学特論:Chromiumのアーキテクチャを解き明かす
                                                                • QuickJS Javascript Engine

                                                                  News 2021-03-27: New release (Changelog) 2020-11-08: New release (Changelog) 2020-09-06: New release (Changelog) Official GitHub mirror at https://github.com/bellard/quickjs Introduction QuickJS is a small and embeddable Javascript engine. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt. It optionally supports mathematical extensions such as big

                                                                  • C++からRustに移行して1年経って思ったこと - Qiita

                                                                    はじめに この記事は「プログラミング技術の変化で得られた知見・苦労話【PR】パソナテック Advent Calendar 2020」のために書かれたものです。 僕は去年の11月から一念発起してRustの勉強を初めて趣味で同人ゲームを開発しています。元々C++を4年程使っていて「C++最高、みんなC++使おう」とか友人に布教していました。しかし、C++プログラマは「一番自分たちの言語の批判に対して強くなる」と言われるほどC++はよくディスられます。もちろん僕も例外ではありませんでした(笑)。 一応僕もPythonを適当に使うようになってからC++のcppとhppを組み合わせるようなCの名残を感じるところや他言語と比べたときの標準ライブラリの貧弱さ、コードが冗長になりやすい点など使いにくいなあと思いはじめましていました。ですがPythonはあくまでも適当に使ってただけでしたし、一通り書けるJa

                                                                      C++からRustに移行して1年経って思ったこと - Qiita
                                                                    • Kotlin 1.3をサクッと学ぶ - CoroutineとKotlin/Nativeを触って理解しよう - エンジニアHub|Webエンジニアのキャリアを考える!

                                                                      Kotlin 1.3をサクッと学ぶ - CoroutineとKotlin/Nativeを触って理解しよう Kotolin入門者に向け、Kotlin1.3に加わったCoroutineとKotlin/Nativeという2つの機能を中心に、実践的なプログラミングのヒントをお伝えします。 今やAndroidアプリ開発には欠かすことのできない言語となった「Kotlin」。2018年秋にバージョン1.3がリリースされ、その後も定期的にバージョンアップが進んでいます。Kotlin 1.3の大きな特徴は、CoroutineとKotlin/Nativeという2つの機能が追加されたことです。本記事では、この2つの機能を中心にKotlinの最新動向について紹介しながら、実践的プログラミングへのヒントをお届けします。 本記事のサンプルプログラムは、macOS上のIntelliJ IDEA Community Ed

                                                                        Kotlin 1.3をサクッと学ぶ - CoroutineとKotlin/Nativeを触って理解しよう - エンジニアHub|Webエンジニアのキャリアを考える!
                                                                      • Meta(旧Facebook)が、Rustを社内の正式サポート言語に採用。サーバサイド向けとしてPython、C++、Hackに追加

                                                                        Meta(旧Facebook)は、ブログ「Engineering at Meta」で公開した記事「Programming languages endorsed for server-side use at Meta」で、Rustを新たに社内の正式サポート言語に追加したことを明らかにしました。 Meta社内ではソフトウェア開発において正式にサポートする言語を慎重に選択しており、社内においてサポートされた言語に対しては十分な投資が行われ、プログラミング、デバッグ、デプロイなどにおいて良好な開発体験が期待できるとともに、新しプロジェクトが開始される場合には、サポートされている言語を選択することが推奨されています。 サーバサイド向けの言語としてこれまでPython、C++、Hackがサポートされており、今回そこにRustが追加されました。 性能重視のバックエンドサービスやCLIの開発にRustを推

                                                                          Meta(旧Facebook)が、Rustを社内の正式サポート言語に採用。サーバサイド向けとしてPython、C++、Hackに追加
                                                                        • C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌

                                                                          目次 目次 「戻り値型の後置記法」って何? 何が嬉しいの? 問題点 「戻り値型の後置記法」って何? C++11から導入された言語仕様です。 タイトルの呼び方は自分が勝手に使っているだけで、英語圏だと「trailing-return-type」がよく使われるらしい。 cpprefjp.github.io この仕様を使うと例えば以下のようなコードが int Add(int a, int b) { return a + b; } このようになります。 auto Add(int a, int b) -> int { return a + b; } 何が嬉しいの? この仕様はC++のメタプログラミングで戻り値型の推論を簡単に行う目的で使用されます。 なんだ、そんなC++上級者のための機能なんて下々の人間には関係ないじゃん、とお思いかもしれませんが、この機能にはもう一つわかりやすい大きなメリットがある

                                                                            C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌
                                                                          • GitHubでC++プロジェクトを開発する際にやっておきたい設定 - Qiita

                                                                            この記事について 簡単な電卓アプリ開発を例に、以下を行います GitHub上でのIssueテンプレート、マイルストーン、Projects(カンバンボード)の設定 GitHub Flowを例にした簡単な開発の流れの説明 CMakeを用いた、C++プロジェクトの用意 GoogleTestを用いたUnit Testの導入 GitHub Actionsを用いた、CI/CDの導入 クロスプラットフォーム (Windows, Linux, MacOS, Linux(ARM)) GitHub Actionsを用いた、コードの静的解析 この記事では、開発の方法論はおまけとして、それを支えるためのツールの設定方法に重点を置きます 1人でやる個人開発~数名規模での開発は本記事の内容でカバーできると思います。もっと複雑になると別の仕組みが必要になってきそうです 本記事の設定を全てやる必要はなく、必要そうな項目を

                                                                              GitHubでC++プロジェクトを開発する際にやっておきたい設定 - Qiita
                                                                            • 『基礎から学ぶ 組込みRust』執筆に寄せて〜Nature RemoへのRust導入の展望〜 - Nature Engineering Blog

                                                                              Nature株式会社ファームウェアエンジニアの中林 (id:tomo-wait-for-it-yuki) です。 本記事では、拙著『基礎から学ぶ 組込みRust』1がC&R研究所様より出版されたので、書籍の紹介やNatureのファームウェア開発にRustを使っていきたい、ということを書きます。 本を書きましたエントリは個人ブログで書いている2ので、それとは少し違った観点から話をしたいと思います。 『基礎から学ぶ 組込みRust』の紹介 2021年5月現在、Rustはすでにマイナーの域を超えたと言って差し支えない状況でしょう。一方、組込みRustはまだまだマイナーな分野です。『基礎から学ぶ 組込みRust』出版をtwitterやブログで告知した際も、「Rustって組込みできたんだ?」という反応が少なくありませんでした。 マイナー扱いから脱するための施策として、認知度を上げ、入門を手厚くする、

                                                                                『基礎から学ぶ 組込みRust』執筆に寄せて〜Nature RemoへのRust導入の展望〜 - Nature Engineering Blog
                                                                              • 例外を初めて実装した言語 - from scratch

                                                                                リクルートアドベントカレンダーの20日目の記事です。 adventar.org 最初にこの疑問を思ったのは、今も忘れない R-ISUCON 2021 というリクルートの社内ISUCONの運営で炎上していた時の話です。 ちなみに R-ISUCON 2021 は劇的な結果で終わっているので、興味のある方は見てみてください。 blog.recruit.co.jp R-ISUCON 2021 では、 Node.js (TypeScript), Go, Java の3パターンの実装が出てくることが通例になっていまして、今回は Java の実装から Node.js, Go に適用していた時に一緒に実装していたメンバーからの疑問が『例外には色々な議論があるけれど、「例外を初めて実装した言語」ってどういう気持ちで実装したんだろう』という話が挙げられたので、そのネタを持ってきました。 ちなみにここで指してい

                                                                                  例外を初めて実装した言語 - from scratch
                                                                                • 「C++Builder」誕生から四半世紀、「C++Builder 1」が無料でダウンロード可能に/C++言語によるGUIアプリ開発に革命を起こした歴史的ソフト

                                                                                    「C++Builder」誕生から四半世紀、「C++Builder 1」が無料でダウンロード可能に/C++言語によるGUIアプリ開発に革命を起こした歴史的ソフト