並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1134件

新着順 人気順

c++の検索結果241 - 280 件 / 1134件

  • 「a=10とb=5の平均は7.5です」をmain関数なしで表示する - ぬいぐるみライフ?

    発端 どなたかc言語プログラミングが得意な方、いらっしゃいましたら教えていただきたいです。 簡単な問いでお恥ずかしいのですが、画像の問いの答えを教えていただきたいです。 int型どうしの演算で少数の出し方が分からないです。#c言語 #プログラミング #プログラミング初心者 #プログラミング学習 pic.twitter.com/kLlE8C7eMT— おりがー@ (@takakiriba825) 2019年7月9日 課題 Int a=10; Int b=5; と代入し平均を表示する 「a=10とb=5の平均は7.5です」と画面に表示する 考察 「Int」と書いてあるがこれはtypedef int Int;が必要?とりあえず普通のintでもよいと解釈する。 「Int a=10; Int b=5; と代入し」と言っているが、「代入後aとbを使わなければならない」とは言っていない。 「平均を表示す

      「a=10とb=5の平均は7.5です」をmain関数なしで表示する - ぬいぐるみライフ?
    • コンパイラ - 共立出版

      本書は、プログラミングやコンピュータに興味を持つ者が、コンパイラの原理と構造、さらにその開発方法を基礎から理解するためのテキストである。 コンパイラの理解は、コンピュータの原理やプログラムの実行のしくみを理解する基礎である。そこで本書では、チューリングらによって確立された計算可能性の理論と万能計算機の構築方法を基礎として、コンパイラを含むプログラミング言語処理系の構築原理とその構造を解説する。これらの理解を基に、コンパイラ実現のための主要な基盤技術を、その原理とその背後にある考え方を含め習得することを目標とする。この考え方を理解することができれば、従来難解と受け止められているLR構文解析や多相型の型推論などの技術も見通し良く習得できる。 これらのコンパイラの原理と構造の理解に加えて、先端的言語コンパイラの開発方法を習得するために、実際に実行可能なインタープリタと抽象機械へのコンパイラを開発

        コンパイラ - 共立出版
      • GitHub - google/autocxx: Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

        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 - google/autocxx: Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers
        • 【C】srand(time(NULL))をしても同じ乱数が生成される

          C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

            【C】srand(time(NULL))をしても同じ乱数が生成される
          • ソフトウェア・エンジニアのためのFPGA入門(1) どうしていまFPGAなのか、そしてFPGAとは何か?

            IoTやAIといったテクノロジーの進歩とともに、最近では、これまでハードウェアに触れてこなかったソフトウェア・エンジニアもFPGAを知る必要がある……、としばし論じられるようになってきた。そうした現状を踏まえ、この連載では、なぜソフトウェア・エンジニアがFPGAを学ぶ必要があるのか、FPGAとは何か、またその基本的な仕組みや構造を3回に分けて紹介する。 なぜソフトウェアのエンジニアがFPGAを学ぶ必要があるのか? ソフトウェア・エンジニアがいまからFPGAを学ぶ必要性について定量的に論じることは難しい。FPGAの設計手法やコンパイラ(※1)は日々進歩しており、既存のソフトウェア(※2)をそのままFPGA用にコンパイルできるケースも増えてきた。CPU(※3)とFPGAが搭載されたシステム上で、どのプログラムをどちらのハードウェアで実行するかを最適化する研究も以前から行われており、近い将来、多

              ソフトウェア・エンジニアのためのFPGA入門(1) どうしていまFPGAなのか、そしてFPGAとは何か?
            • C++23発表:新しいC++標準の登場

              8月6日、C++23はC++20の次の標準として発表されました。 C++23はC++の進化の一環として重要な役割を果たし、C++の機能を改善することを目的としています。 C++23はC++98やC++03ほどの大きな変更はなく、C++17の伝統に則ったものです。 本日、C++コミュニティが待望の次期C++標準、「C++23」を発表した。C++は長い歴史を誇るプログラミング言語であり、C++23はその進化の中でも特に重要な節目となる。C++23はC++98やC++11、C++20ほどの大規模な変更は見られないが、C++17の伝統を継承している。 C++の歴史的進化 C++は1980年代末にBjarne Stroustrup氏とMargaret A. Ellis氏によって執筆された「Annotated C++ Reference Manual (ARM)」によって誕生した。この書籍は当時多数存

                C++23発表:新しいC++標準の登場
              • 米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨

                印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 米国家安全保障局(NSA)は米国時間11月10日、ソフトウェアのメモリー安全性強化に向けたガイダンスを公開した。同機関はその中で開発者らに対して、ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。 これらの言語の中では、Javaが企業向けアプリや「Android」アプリの開発で最も幅広く使用されている一方、Swiftは「iOS」アプリの開発環境に取り込まれている点もあって人気プログラミング言語の上位に入っている。また、RustはシステムプログラミングにおいてCやC++の代替とし

                  米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
                • 文字列から浮動小数点数に変換する、なるべく速く - toge's diary

                  TL;DR 文字列から浮動小数点数に変換するならfastfloat使いましょう。 私が試せる環境で比較する限り、とても速いです。 細かいことが気になります C++でちょっとしたプログラムを書くときにいつも気になるのが 「文字列データから指定データ型への変換処理をどうやって効率的に書くか」 です。私だけかもしれませんが。 特に悩んでしまうのが「文字列→浮動小数点」です。 std::scanf, std::stringstreamを使うものは大抵すごく遅い std::strtodstd::stodはstd::stringへの変換が入るので避けたい std::from_charsは(libstdc++が)浮動小数点型に対応していない boost::sprit::qiが何故か速いのだけれどこのためにboost::sprit使うのは重い と色々制約が多いのです。どうにかならないものか。 fast_f

                    文字列から浮動小数点数に変換する、なるべく速く - toge's diary
                  • 自作プログラミング言語と WebAssembly コンパイラ

                    Photo by Lukas Tennie from unsplashはじめにこのエントリでは、僕が趣味で作っている PicoML という自作プログラミング言語の話を書こうと思う。 作ってから半年くらい経っているのだけれど、如何せん自作言語という無用の長物であり、登壇などでコイツの話をすることもないため、ある種の供養みたいなものだと思ってもらって構わない。 PicoML の概要まずは実装した言語の紹介から。ざっくり以下の特徴を備えた言語である。 ML ベースの文法による関数型言語単純 let 多相型推論による型チェックCLI として、Node.js 上での即時評価器(REPL)と WebAssembly をターゲットにしたコンパイラの双方を提供REPL やコンパイラの実装は TypeScript で行っている。自分の勉強が主目的であったため、REPL やコンパイラの CLI を動作させるの

                      自作プログラミング言語と WebAssembly コンパイラ
                    • Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust

                      Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust March 2021 Summary: I describe a simple interview problem (counting frequencies of unique words), solve it in various languages, and compare performance across them. For each language, I’ve included a simple, idiomatic solution as well as a more optimized approach via profiling. Go to: Constraints | Python Go C++ C

                      • C++コンパイラはあなたよりも良いコードを書く - Qiita

                        最適化 皆さんご存じの通りC++という言語は速度しか取り柄がありません。複雑怪奇な構文、異常量のコンパイルエラー、何が起きるかわからない未定義動作たち、、、それでもなお私たちがC++を使い続けるのは、そう、極めて速いからです。ちょっと前に流行ったD言語や最近流行りのRustが速いという噂ですが、結局ほとんどの場面で速度においてC++に勝ててはいません。個人的な偏見ですがC++のように速度のみを重視し、安全性を捨てない限りRustに未来はないでしょう。まあ、人から聞いた噂によるとRustの標準ライブラリの中身はunsafeなコードが敷き詰められているらしく、なかなか速いようですが。いずれRustが廃れてUnsafe Rustの方が人気が出たりするかもしれませんね。とりあえず、最も速度面で優れている言語はC++といっても過言ではないでしょう。 そして、その圧倒的な速度を支えるのが何といってもC

                          C++コンパイラはあなたよりも良いコードを書く - Qiita
                        • C言語で0からニューラルネットワークを自作してみた - Qiita

                          2023/06/23追記: 頂いたコメントを元にコードを修正しました。主に直した点は下記の通りです。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 1.静的なメモリを用いることでMNIST全てを用いて学習が行えるようにしました。 (通常のメモリだとオーバーフローしてしまいますが、静的にメモリを取ることで大容量のデータを扱えるようになりました) 2.変数の初期化を明示しました。 3.正解率の求め方を改めました(間違った計算をしていました) その他軽微なミスを修正しました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー こんにちにゃんです。 水色桜(みずいろさくら)です。 今回はC言語を用いてニューラルネットワークを自作して、MNISTを分類してみようと思います。 今回作成したモデルの精度を以下に示します。 10回の学習で55.0%の精度を達

                            C言語で0からニューラルネットワークを自作してみた - Qiita
                          • 2023年に特にお世話になったC++ライブラリ8選 - Qiita

                            たぶん2023年一番お世話になったライブラリです。 2022年まではsimdjsonをよく使っていたのですが、新規プロジェクトはGlazeばかり使っています。 開発が活発だし、ISSUEへの対応が速いのもありがたいです。 良い点 SIMDを利用していないのにsimdjsonやyyjsonと遜色ない速度で動作する 構造体やクラスだけでなくSTLコンテナもJSONとの直接読み書きができる 中間データに独自バイナリ形式を利用してさらに高速化できる いまいちな点 長い文字列が多いJSONデータの読み込みではSIMDを使っているライブラリに対して不利になる 最後のフィールドのカンマやコメントの読み込みに対応していない ストリーム的な処理はない(と思う) 代替ライブラリ 似たようなアプローチでSIMDを使ってさらに速いJsonifierというライブラリがあります。 純粋な速度を求める場合にはこちらを使

                              2023年に特にお世話になったC++ライブラリ8選 - Qiita
                            • SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0:IPA 独立行政法人 情報処理推進機構

                              HOME社会基盤センター報告書・書籍・ツール・教材書籍SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0

                              • TypeScript Compiler APIを使って型を中心に実装を自動生成する - ドワンゴ教育サービス開発者ブログ

                                この記事は、ドワンゴアドベントカレンダー2020の10日目の記事です。 qiita.com はじめに ベルリシア(@berlysia) という名前で活動しています。Webが好きです。ドワンゴでは、N予備校をはじめとする教育事業のWebフロントエンド開発をしています。 この記事では、Webフロントエンドチームの実際の開発で用いた、TypeScript Compiler APIを使っての型を中心とした実装の自動生成事例を紹介します。考察パートが中心で、コードはほぼ出てきません。 状況説明 管理画面の開発です。検索と結果一覧とCRUD操作が中心で、多くの画面が定型的な実装です。画面数が多いため、いかにこうした定型的な画面を効率よく開発して複雑なところに注力するかが、この開発を成功させるカギとなります。また、人員的にもある程度の並列性を確保している状態です。 APIはOpenAPIで仕様が提供され

                                  TypeScript Compiler APIを使って型を中心に実装を自動生成する - ドワンゴ教育サービス開発者ブログ
                                • 自作コンパイラ基盤の話 - Qiita

                                  これは、言語実装 Advent Calendar 2020 19日目の記事です。 最近は、コンパイラやインタプリタなどの言語処理系や、それに類するものを作る人が増えてきています。(私の周りだけかもしれませんが。) しかし、もう一歩進んで、コンパイラ基盤を作ってみたという話はあまり聞きません。 コンパイラ基盤は、それの対象とするアーキテクチャについてや、それ自体の使い勝手を考えるのが非常に面白いものです。また、コンパイラ基盤を作る中で、コンパイラや計算機自体についてより深く学ぶことが出来ます。 この記事では、私が開発中のコンパイラ基盤を例として、コンパイラ基盤について語っていきます。 そもそもコンパイラ基盤とは コンパイラ基盤と言えば、近年色々な所で目にするのがLLVMです。 LLVMを使うことで、コンパイラの複雑で面倒な部分を避けつつ、コンパイラを構成することができるようになりました。 下

                                    自作コンパイラ基盤の話 - Qiita
                                  • PPLサマースクール2021 「JavaScript処理系とChromeブラウザの実装技術」 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)

                                    ニュース † Web ページを公開しました (6/29) 無事終了しました。講演資料へのリンクを追記しました (9/1) ↑ 概要 † JavaScript は世界でもっとも利用されている重要なプログラミング言語の一つであり、ウェブブラウザで利用可能なほぼ唯一のプログラミング言語という特徴から、ウェブアプリケーション開発で広く利用されています。 この重要性から、JavaScript処理系の性能改善に関する研究開発が活発に行われてきました。JavaScriptの性能改善は、動的な言語ながらの困難さも知られています。今年のサマースクールでは、鵜川さん(東京大学)にJavaScriptの実装技術について、その困難さをどう克服するか、基本的なところからご紹介いただきます。 JavaScriptを動作させるソフトウェアとして、Google が開発を主導するV8処理系、およびそれを利用するGoogle

                                    • Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog

                                      はじめに インライン展開 インライン展開とは 高階関数のパフォーマンスが落ちる例 インライン展開の制約 エスケープ解析 エスケープ解析とは 高階関数のパフォーマンスが落ちる例 さいごに 参考文献 はじめに 先々月にも Go コンパイラの最適化に関するブログ記事を書いたのですが、多くのブックマークを頂けて感謝です! SRE の izzii です。 github.com 上のドキュメントを参考にしつつ Go コンパイラの最適化に関する記事を連載していきます。本記事は 2 本目です。 [第 1 回] Goコンパイラのお勉強(1)~ゼロ幅の型によるメモリ利用の最適化と未定義動作~ [本記事] Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ [第 3 回] Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ 文字数の関係でタイトルでは高階関数という言葉を

                                        Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog
                                      • TypeScriptコンパイラの読み方

                                        TypeScriptコンパイラリーディングをする上で、目当てのコードに辿りつくまでの手間を短縮するためのメモ書きです。コードリーディングの一般論や、TypeScriptコンパイラから読み取れる個別事象については極力省略しています。 TypeScriptの主要な処理系 多くのJavaScriptパーサーが拡張としてTypeScriptを読めるようになっています。また抽象構文木のフォーマットに事実上の標準があり、各パーサーはそれに従っています。AST Explorerでこれらのパーサーの出力を調べることができます。特に重要なのが以下の2つの処理系です。 TypeScript TypeScriptの型推論・リント・トランスパイル・モジュールバンドリング等ができる。 Babel TypeScriptのトランスパイルができる。 TypeScriptコンパイラの構成 libに標準ライブラリ (型定義フ

                                          TypeScriptコンパイラの読み方
                                        • Big Sky :: C++ で flask ライクなウェブサーバ「clask」書いた。

                                          今まで C++ でちょっとしたウェブアプリを作る際は crow という micro-framework を使ってきました。 GitHub - ipkn/crow: Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask) How to Build If you just want to use crow, copy amalgamate/crow_all.h and include it. Requirements C... https://github.com/ipkn/crow ヘッダオンリーで使えてとても便利だったのですが、boost に依存している点があまり好きじゃなかったのと、最近 crow の開発が止まり最新の boost でビルド出来なくなってしまったので、自分で作

                                            Big Sky :: C++ で flask ライクなウェブサーバ「clask」書いた。
                                          • Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet

                                            For the past year, the Sorbet team has been working on an experimental, ahead-of-time compiler for Ruby, powered by Sorbet and LLVM. Today we’re sharing the source code for it. It lives alongside the existing code for Sorbet on GitHub, mostly in the compiler/ folder: → https://github.com/sorbet/sorbet/tree/master/compiler/ We want to be clear up front: the code is nowhere near ready for external u

                                              Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
                                            • ついに実現!実用的なC++20コンパイル時出力 - Qiita

                                              はじめに 早いもので、今年ももう大晦日です。 大晦日といえば、やることは1つです。 そう、コンパイル時処理ですね!! コンパイル時出力 C++ のコンパイル時処理は非常に強力で、様々なことがコンパイル時にできます。 入力に依存しない計算なら、大抵コンパイル時にしてしまうことができます。 しかし、その結果の出力については実行時に行う必要があり、本当にコンパイル時に処理できているのか分かりにくくなってしまうこともあります。 そこで、なんかこういろいろ頑張ってゴリ押すことで、制限はありますがコンパイル時に出力することができます。 先日公開した記事では、そんなコンパイル時出力について書いています。 コンパイル時出力の改良 この記事の目的は、コンパイル時出力の改良です。 現在のコンパイル時出力は次のような問題点があり、使いやすくはありません。 出力の前後に余計な出力(はみ出たエラーメッセージ)がある

                                                ついに実現!実用的なC++20コンパイル時出力 - Qiita
                                              • さらばAPI、Twitter専用ガジェット「TW BOY」を作って遊ぶ|fabcross

                                                2023年2月、Twitter APIの有料化が発表された。私も個人制作者としてTwitter APIを使ったサービスを作っていたことがあるので、一時代の終わりを感じて、しみじみとした気分になってしまった。 有料化されるまでは、まだ少し時間があるようだ。最後にTwitter APIを使った何かを作ってみたい。せっかくなので、個人でしか作れないようなものがいい。専用ガジェットなんてどうだろうか? Twitter専用ガジェットを作る Twitter APIみたいなWeb APIは、いきなり仕様が変わることがあるのでガジェットとの相性が悪い(ファームウェア更新が必要になる)。かつてタカラトミーから「ついまる」という、ツイートを音声で読み上げるおもちゃが発売されていたけれど、これも現在では使用不可能になっている。 だがここで、あえて専用ガジェットである。単に私の趣味の問題でもあるのだけど、「それし

                                                  さらばAPI、Twitter専用ガジェット「TW BOY」を作って遊ぶ|fabcross
                                                • 【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog

                                                  はじめに 弊社Flatt Securityでは学生の学びを支援したいという想いから今回少額ではありますが高橋さんの留学を支援させていただき、そのご縁で弊社のYONEUCHI, Takashi (@lmt_swallow) | Twitterもスタッフを務めるセキュリティミニキャンプにおける素晴らしい講義の内容をテックブログに書いていただけることになりました。以下本文になります。 @00_ です。今年の夏のUC Berkeleyへの留学費用をFlatt Securityさんに支援して頂いた経緯で、セキュリティミニキャンプの講義内容についてテックブログで書くことになりました。 2019/09/28-2019/09/29 のセキュリティミニキャンプ山梨で「ミニキャン言語を作ってみよう!」の講座を行いました。この講座では、「ミニキャン言語(MC言語)」という独自言語のコンパイラを、自分がコミッタで

                                                    【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog
                                                  • Facebook、プログラムコードを別のプログラミング言語に翻訳する「TransCoder AI」を開発 - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報

                                                    FacebookはC++、Java、Pythonなどの高水準言語で書かれたプログラムコードを別のプログラミング言語に変換するニューラルトランスコンパイラを開発したという。このシステムは教師なし学習を採用しており、同社は従来よりもかなり効率が改善したとしている。 既存のプログラムコードを別の言語に移行するには、両方の言語について専門的な知識が必要な上、コストがかかってしまいがちだ。たとえばオーストラリアのコモンウェルス銀行はプラットフォームをCOBOLからJavaに移行するために5年の歳月と約7億5,000万米ドルを費やした。 Facebookは教師なし学習というアプローチ法に取り組み、C++、Java、Python間でソースコードを変換することができる「TransCoder」を開発した。トレーニングには280万件以上のオープンソースリポジトリからなるGitHubコーパスを使用した。Tran

                                                      Facebook、プログラムコードを別のプログラミング言語に翻訳する「TransCoder AI」を開発 - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報
                                                    • Gradle/Kotlinで開発する私的ベストプラクティス2022 - Kengo's blog

                                                      こちらのエントリーが素敵だなと思ったので、最近書いてるKotlinプロジェクトのベストプラクティスをまとめてみます。一部はJavaプロジェクトにおいても利用できるはずです。 zenn.dev 基本方針 参加障壁を下げる。OSSプロジェクトでもプロプライエタリ・ソフトウェアプロジェクトでも、新しい開発者が参加するコストを下げることには大きな意義がある。 環境差異を吸収する。javaにPATHが通ってさえいればOSに関係なくビルドが通るようにする。 プロジェクト固有ルールを作らない。Conventional CommitsやKeep a changelogなど、ひろく世に使われているルールを採用する。 Gradleを設定する Spotlessを使う コードのフォーマットはformatterに任せて人間は細かいことを考えない、というのが不特定多数が参加するソフトウェアプロジェクトのあるべき姿だと

                                                        Gradle/Kotlinで開発する私的ベストプラクティス2022 - Kengo's blog
                                                      • Rustの標準ライブラリは小さいのか? - Qiita

                                                        はじめに 「Rustの標準ライブラリは小さい」と言われます。実際、正規表現や乱数など多くの言語で標準ライブラリに入っているようなものが、Rustの標準ライブラリにはありません。こうなっている理由は「標準ライブラリに入っていなくても依存関係を簡単に追加できる」「後方互換性を保ちながら大きな標準ライブラリを維持するのは難しい」といったことが挙げられます。もちろん標準ライブラリが小さいと不便なこともあり「サードパーティライブラリの選択が難しい」というのはよく言われるところです。 ところでRustの標準ライブラリは実際に小さいでしょうか?小さいというと、どうしても低機能・できることが少ないというイメージになりますが、個人的な印象としては「Rustの標準ライブラリはカバー範囲は狭いが高密度」というものです。 あまりこういう観点で書かれたものは見たことがないので、この記事ではRustの標準ライブラリの

                                                          Rustの標準ライブラリは小さいのか? - Qiita
                                                        • GitHub - google/orbit: C/C++ Performance Profiler

                                                          Orbit, the Open Runtime Binary Instrumentation Tool is a standalone native application profiler for Windows and Linux. It supports native applications written in languages such as C, C++, Rust, or Go. Its main purpose is to help developers identify the performance bottlenecks of a complex application. Orbit can be also used to visualize the execution flow of such applications. The key differentiat

                                                            GitHub - google/orbit: C/C++ Performance Profiler
                                                          • RubyKaigiでJITコンパイラの書き方について発表した - k0kubun's blog

                                                            RubyKaigi 2023でRuby JIT Hacking Guideというタイトルで発表してきた。 speakerdeck.com JITコンパイラを書くチュートリアル 今回の発表ではJITコンパイラが書ける人間を増やすことをゴールにしていたが、 30分という短い発表枠内では雰囲気を知ってもらうことにフォーカスし、 実際に手を動かしたい人たちにはそれ用のチュートリアルを触ってもらう形を取った。 github.com JITコンパイラは実は初心者向き 独学でコンパイラの作り方を学ぶ人は、Cコンパイラなどを実装することが多いように思う。 C言語は実装対象として一見シンプルそうに見えて実は結構機能が多いので、C11をゴールに始めてもC89の範囲すら実装しきらないままエターなる人も多いのではないか。 そんな僕みたいな堕落した人間にお勧めなのがJITコンパイラ。 インタプリタと併走する特性上、

                                                              RubyKaigiでJITコンパイラの書き方について発表した - k0kubun's blog
                                                            • 23歳文系で今更セキュリティエンジニアになりたいと本気で思いました。PCについては何も分かりません。始めたC言語も難しいです。一日中勉強すべきですか?何から始めればいいですか…諦めた方がいいですか?

                                                              回答 (16件中の1件目) いろいろ気になった質問だったので、回答したいと思います。(長文となりますこと、ご容赦ください。) 「23歳文系で今更セキュリティエンジニアになりたいと本気で思いました。」とありますが、23歳でそのような気持ちになられたことが素晴らしいです。(私はその当時はただ流されるまま就職できるところに就職して、ただ会社員になってましたので。。。) なので、今更ではないと思いますので、頑張ってください。 あと、「諦めた方がいいですか?」という質問には、きっと誰も回答してくれないと思いますし、書かないほうが良いと思います。 なぜなら、その人がどのような職につきたいのか...

                                                                23歳文系で今更セキュリティエンジニアになりたいと本気で思いました。PCについては何も分かりません。始めたC言語も難しいです。一日中勉強すべきですか?何から始めればいいですか…諦めた方がいいですか?
                                                              • mold: modern linker

                                                                mold: modern linker Rui Ueyama

                                                                  mold: modern linker
                                                                • MLIR がもたらす新たな中間表現の可能性

                                                                  はじめに 半導体の微細化が鈍化し、ハードウェアによる高速化が困難になっている現状において、ソフトウェアによる計算の高速化が喫緊の課題となっています。この状況において、特定のドメインの問題を解くことに最適化された言語であるドメイン固有言語と、そのコンパイラであるドメイン固有コンパイラの活用が望まれています。 ドメイン固有コンパイラの構築の際には、開発を容易にするために、既存のコンパイラ基盤であるLLVMを活用することが考えられます。しかし、LLVM はドメイン固有コンパイラの構築にはあまり向きません。この理由は、LLVM の成功と表裏一体の関係にあります。 LLVM が成功した理由は、コンパイラの処理を適切に分割し、独立したモジュールとして機能させたことにあります。このモジュール化において中心的な役割を果たしているのが、LLVM で用いられる中間表現(Intermediate Represe

                                                                    MLIR がもたらす新たな中間表現の可能性
                                                                  • C++からRustに移行して幸せになる人、そうならない人 その違いは?

                                                                    C++はRustが登場する前から成熟度の高い言語だった。開発者はC++からRustに切り替える必要があるのだろうか。必ずしもそうとは限らない。C++とRustの品質、両言語の相違点と類似点を調べて、どちらのプログラミング言語を選ぶかを決めたい。 C++はRustが登場する前から成熟度の高い言語だった。開発者はC++からRustに切り替える必要があるのだろうか。必ずしもそうとは限らない。 新たなプロジェクトに携わるプログラマーは、プログラミング言語の選択肢が不足することはない。プログラミング言語「C++」と「Rust」は、 ブラウザベースのソフトウェアからビデオゲームに至るまで、さまざまなプロジェクトに適しており、それぞれに利点がある。 C++は効率的で信頼性の高いプログラミング言語だ。信頼性、パフォーマンス、スケーラビリティの高さから開発者はC++を選ぶ。C++の標準テンプレートライブラリ

                                                                      C++からRustに移行して幸せになる人、そうならない人 その違いは?
                                                                    • WasmGCについて予習する

                                                                      この記事はWebAssembly Advent Calendar 2023 2日目の記事です. ガベージコレクタ(WasmGC)[1]が10月頃にChromeとFirefoxでデフォルトで有効になり,標準化目前ということで大いに盛り上がったのは記憶に新しいかと思います. これはChromeが対応したというよりはChromeが採用しているJavaScriptのランタイムであるV8がデフォルトでWasmGCが有効になったというのが正確な表現で,DenoでもDartからビルドしたWasmを実行する際にGCを有効にするフラグを立てる必要がなくなり,実行しやすくなったなぁと皆さんも感じているかと思います. -$ deno run --allow-read --v8-flags=--experimental-wasm-gc run.js +$ deno run --allow-read run.js

                                                                        WasmGCについて予習する
                                                                      • 型付けは難しい

                                                                        ベン・フィードラーのブログより。 型検査と型推論 型検査とは、あるプログラミング言語で与えられたプログラムを実行し、すべての変数や式が正しい型を持っているかどうかを調べるプロセスです。例えば、文字列は文字列に代入され、算術式は数値のみを使用するなどです。一部の言語では型推論を提供しており、コンパイラに自分で正しい型を見つけるタスクも提供します。言語の特徴に応じて、型検査と型推論の問題は、些細なものから決定不能なものまで様々です。 一般的な用語 完全性 正しく入力されたプログラムを全てチェックできれば、タイプチェッカーは完了です。 健全性 正しく型付けされたプログラムのみを受け付けるものであれば、型検査は健全です。 決定可能性 任意の入力に対して、その入力が問題を満足するかどうかを有限時間で計算できる場合、決定問題は決定可能です。決定可能な問題の例としては、素数判定や充足可能性などがあります

                                                                        • 平山尚『ゲームプログラマになる前に覚えておきたい技術』 - 思っているよりもずっとずっと人生は短い。

                                                                          ゲームプログラマになる前に覚えておきたい技術 作者: 平山尚出版社/メーカー: 秀和システム発売日: 2008/11/14メディア: 単行本購入: 112人 クリック: 3,473回この商品を含むブログ (193件) を見る C++でゲームを作る本ですが、これは良い本。って、まだ頭の方と最後の方しか読んでませんが。あとはぱらぱら眺めた程度。 そもそも、分厚い本(800ページ以上!)だし、あんまりゲーム開発そのものには興味ない(ゲームっぽいUIには興味あるけど)ので、買おうかどうしようかと迷ったんですが、それでも買うことに決めたのは、まえがきの「数学について」の最初の段落の一行。 ゲームを作るには数学が必要だ。 と書かれていたからでした。 この本は冒頭で、 この本の目的は、君が一人で3Dゲームを作れるようにすることだ。 3Dゲームと言ってもいろいろあるが、ここでは「某ロボットが弾を打ち合うゲ

                                                                            平山尚『ゲームプログラマになる前に覚えておきたい技術』 - 思っているよりもずっとずっと人生は短い。
                                                                          • 人気プログラミング言語のランキング、かつて上位3つのひとつだったJavaが凋落傾向【やじうまWatch】

                                                                              人気プログラミング言語のランキング、かつて上位3つのひとつだったJavaが凋落傾向【やじうまWatch】
                                                                            • キャディ株式会社のテクニカルアドバイザーになった

                                                                              C++勉強会 #1 - connpass Ta-da:ドワンゴは辞めていない。キャディでテクニカルアドバイザーとしてC++教育もすることになった。7月30日に最初の勉強会をする。 周りで転職が頻発しているので、私もにわかに転職熱をだし、自分の転職市場における価値を確かめるためにも、いくつか企業に話を聞いてみた。その結果としては、私を給料据え置きで雇いC++の仕事をさせたいという企業はあった。しかし、教育一辺倒というわけでもないし年収も現状維持、そしてドワンゴでまだやりたい仕事も残っているときている。転職も興味ぶかい人生の選択ではあるが、しばらくはドワンゴにとどまろうという判断を今回はした。 その話を聞いた企業の一つがキャディ株式会社だ。奇しくもちょうど1年前、もうC++17を現場で使っている企業があるというので話を聞きに行ってブログに書いたことがある。 C++17をすでに現場で使っていると

                                                                              • 「Chromium開発に興味あるエンジニア探してます」ブラウザ開発の仕事ってどんな感じか聞いてみた

                                                                                テックカンパニーをテックカンパニーたらしめているものはなにか?技術か、人か、それともチームなのか。 連載「Technology Company Internals」では、テックカンパニーの内側で働くエンジニアに、技術に精通したエキスパートが対面で話を聞き、テックカンパニーとは何か?を探るだけでなく、テックカンパニーを目指す企業の指針となることを目指します。 様々なデバイス上で動くブラウザを開発するのが仕事です 白石: 本日はよろしくお願いします。自己紹介からお願いできますでしょうか? 梅田: 梅田と申します。株式会社ACCESSで、webブラウザ開発事業のマネージャーを担当しています。 白石: ブラウザ開発を生業にしている、ってすごいですよね。珍しいというか。 梅田: はい、日本だと唯一…かどうかはわかりませんが、相当珍しいと思います(笑) 白石: それで上場までされているというのもすごい

                                                                                  「Chromium開発に興味あるエンジニア探してます」ブラウザ開発の仕事ってどんな感じか聞いてみた
                                                                                • Javaに革命を起こすGraalVM Native Image

                                                                                  Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                                                    Javaに革命を起こすGraalVM Native Image