並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 649件

新着順 人気順

cppの検索結果121 - 160 件 / 649件

  • 世界のプログラミング言語(47) PythonのようにシンプルでC言語のように高速な言語Nimを試してみよう

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

      世界のプログラミング言語(47) PythonのようにシンプルでC言語のように高速な言語Nimを試してみよう
    • Elasticsearchで作るメディアサイト

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

        Elasticsearchで作るメディアサイト
      • JavaScript で Wasm 使ってるなら要注意! そのメモリ、本当に解放されてますか? - カミナシ エンジニアブログ

        数ヶ月前、画像処理ライブラリ OpenCV.js を使って Web カメラの映像をリアルタイム処理するプロトタイプを作っていたときのことです。 OpenCV.js は C++ で書かれたコードを WebAssembly(Wasm) にコンパイルして作られており、Wasm ならではのブラウザ上での高速な処理が可能なライブラリです。 実際、画像のフィルタ処理や特徴点検出など、ユニットテストの段階では高速に実行でき、開発は一見順調に進んでいるかのように見えました。 ところが、いざアプリケーションに画像処理モジュールを組み込んでみると、起動したカメラが数秒経つとなぜか止まってしまいました。 コンソールにもエラーは出ず、Chrome を再起動すればまた数秒だけ動く……そんな不可解な状態に悩まされました。 原因は、Wasm のメモリリーク。 そう、恐ろしいことに C++ 製 Wasm で作られたライブ

          JavaScript で Wasm 使ってるなら要注意! そのメモリ、本当に解放されてますか? - カミナシ エンジニアブログ
        • WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~

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

            WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~
          • 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
            • 誰でも書けるスクリプト言語は、immutable な配列を提供すればよかった

              a = [1, 2, 3] b = a # コピー? c = a # コピー? b.append(4) # 追加 c.append(5) # 追加 print(b) # [1, 2, 3, 4, 5] # c に追加したはずの 5 が # b にも追加されていて、ビビる print(c) # [1, 2, 3, 4, 5] # b に追加したはずの 4 が # c にも追加されていて、ビビる const a = [1, 2, 3] const b = a // コピー? const c = a // コピー? b.push(4) // 追加 c.push(5) // 追加 console.log(b) /* [ 1, 2, 3, 4, 5 ] c に追加したはずの 5 が b にも追加されていて、ビビる */ console.log(c) /* [ 1, 2, 3, 4, 5 ] b に追

                誰でも書けるスクリプト言語は、immutable な配列を提供すればよかった
              • C language

                The C programming language C is a general-purpose high-level programming language suitable for low-level programming, in other words: a system programming language. It stands out in terms of portability, interoperability, efficiency, and stability. Revisions of the C standard

                • 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++でシェーダを書く

                    何とかして近代的なC++の言語機能を使ってシェーダを書けないか、色々な方法を試します これは2024年11月9日に行われた Kernel/VM探検隊@北陸 Part 7 での発表動画です 発表動画 : https://youtu.be/flH2Y6XoDZY ソースコード : https://gi…

                      C++でシェーダを書く
                    • 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

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事について 簡単な電卓アプリ開発を例に、以下を行います GitHub上でのIssueテンプレート、マイルストーン、Projects(カンバンボード)の設定 GitHub Flowを例にした簡単な開発の流れの説明 CMakeを用いた、C++プロジェクトの用意 GoogleTestを用いたUnit Testの導入 GitHub Actionsを用いた、CI/CDの導入 クロスプラットフォーム (Windows, Linux, MacOS, Linux(ARM)) GitHub Actionsを用いた、コードの静的解析 この記事では、開

                          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
                            • 世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか

                              Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。 ZigのWebサイト Zigとは Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。 Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++やRust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。 そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推

                                世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
                              • 「C++Builder」誕生から四半世紀、「C++Builder 1」が無料でダウンロード可能に/C++言語によるGUIアプリ開発に革命を起こした歴史的ソフト

                                  「C++Builder」誕生から四半世紀、「C++Builder 1」が無料でダウンロード可能に/C++言語によるGUIアプリ開発に革命を起こした歴史的ソフト
                                • Webブラウザ上でWebAssembly製コンパイラによりC言語をWebAssemblyにコンパイル、そのまま実行可能に。Wasmer 4.4の新機能

                                  スタンドアロンなWebAssemblyランタイム「Wasmer」の開発元であるWasmer社は最新のWasmer 4.4の新機能として、C言語をWebAssemblyにコンパイルし、WebAssembly環境でそのまま実行可能する機能を発表しました。 下記はWasmer社が用意した、Webブラウザ上にWebAssemblyでBash環境を構築する「wasmer.sh」のコマンドラインから、wasmerによりC言語をコンパイルしてWebAssemblyモジュールを生成し、実行する操作を筆者のWindowsマシンで実際に試したところです(赤線は筆者による)。 Webブラウザ上でC言語をWebAssemblyにコンパイルし、そのままWebAssembly環境上で実行できています。 合わせて登場したJavaScript SDKによってNode.jsやBunなどのサーバサイドのWebAssembly

                                    Webブラウザ上でWebAssembly製コンパイラによりC言語をWebAssemblyにコンパイル、そのまま実行可能に。Wasmer 4.4の新機能
                                  • C++言語によるお嬢様コーディングがブームの兆し!?/「こちらのmain様は何もお受け取りにならず代わりにintをお返しになる関数でして……」【やじうまの杜】

                                      C++言語によるお嬢様コーディングがブームの兆し!?/「こちらのmain様は何もお受け取りにならず代わりにintをお返しになる関数でして……」【やじうまの杜】
                                    • Pythonで作成した物体検出アプリをC++、C#でWindowsネイティブアプリに作り直した話 - Qiita

                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? どのようなアプリか ゲーム FF14のプレイ動画からユーザー名を黒塗りする動画編集アプリです。 ユーザー名の検出に物体検出を利用しています。 Pythonで実装、PyinstallerでEXE化していましたが、C++、C#で作り直し、この度Microsoftストアに公開できました。わーい! ここでは、その経緯や直面した問題、得られたものなどを振り返りたいと思います。 最終的にそれぞれで利用した主なライブラリ Python pytorch,torch-tensorrt,ultralytics,opencv-python,ffmpeg-py

                                        Pythonで作成した物体検出アプリをC++、C#でWindowsネイティブアプリに作り直した話 - Qiita
                                      • やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる

                                        はじめに build own xってなに?という方がいらっしゃると思います。 下記ページにあるような自作~みたいなやつのことを指しています。 自作OSとかDBとかとにかく様々な種類があるんですが、僕がやってみて良かったなぁと感じたものだけ紹介します。(一部やってないけど良さそうなのも紹介します。) 難易度を星5を最高として書いていきます。 言語は日本語 or 英語です。 コンパイラ writing interpreter in go 形態:本 言語: 日本語、英語 コンパイラ系なら一番初めにおすすめなのは間違いなくこれ。 日本語版では「Go言語でつくるインタプリタ」という題で出版されています。 外部に依存するライブラリを一切使わないのが特徴でスクラッチで書きます。 語り口調も平易でわかりやすく、コンパイラ?インタープリタ?という方にもおすすめ。 Monkeyという言語を実装するのですが、既

                                          やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる
                                        • これを知らなければ、C++プログラマを名乗れない。ITエンジニアも驚いた「C言語」の配列の仕組み→「初めて知った」「配列へのアクセスの書き方が糖衣構文」

                                          二項しいぷ @BinomialSheep C++の「す、すげーー!!そんなことすなーっ!!!!!!」シリーズ 『プログラミング言語C++ 第4版/ストラウストラップ』 pic.twitter.com/KjiDaXe0tj x.com/winter_kyopro/… 2024-06-21 23:42:32

                                            これを知らなければ、C++プログラマを名乗れない。ITエンジニアも驚いた「C言語」の配列の仕組み→「初めて知った」「配列へのアクセスの書き方が糖衣構文」
                                          • CEDEC 2024『ゲーム開発者のための C++17~C++23, 近年の C++ 規格策定の動向』 | ドクセル

                                            CEDEC 2024『ゲーム開発者のための C++17~C++23, 近年の C++ 規格策定の動向』

                                              CEDEC 2024『ゲーム開発者のための C++17~C++23, 近年の C++ 規格策定の動向』 | ドクセル
                                            • APIとかABIとかシステムコールとか - 覚書

                                              はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんですが、初心者が理解するには細かいことまで書かれすぎていて、かつ、それぞれの関係がわかりにくいです。なので、用語を逐一解説するのではなく、ありがちな質問のQAという形をとりました。人によって用語の意味の揺らぎがあったりするんですが、私の解釈ということで。あからさまに間違っていたら指摘していただけると嬉しいです。 これを書こうと思ったきっかけは、以前こんなtweetを見かけたことです。それから「そういえば最

                                                APIとかABIとかシステムコールとか - 覚書
                                              • 並行プログラミング入門

                                                複数のプログラムを同時に実行する「並行プログラミング」は、処理速度を飛躍的に向上させる手法で、タスク管理、プロセス管理、スレッド管理をはじめ、複雑な仕組みについての幅広い知識とテクニックが必要となります。本書はRustとアセンブリ、そして一部Cを用い、CPUのアトミック命令、グリーンスレッド、アクターモデル、π計算、ソフトウェア・トランザクショナルメモリ、async/awaitなど、並行プログラミングに関する理論的な背景から実装までをカバー。さらに、アセンブリ実装の理解を深めるため、AArch64とx86-64アーキテクチャの説明も付録として収録。一歩一歩、着実に理解できるように、その仕組みから順を追って詳しく説明します。GitHub上で公開されているソースコードを実際に動かしながら、並行プログラミングの知識と理解を深めることができます。 関連ファイル サンプルコード 正誤表 書籍発行後に

                                                  並行プログラミング入門
                                                • コンパイル技法: パターンマッチ

                                                  本書では関数型言語をはじめとして多くの言語にあるパターンマッチをコンパイルする方法を紹介します。パターンマッチはシンプルに条件分岐の連鎖にコンパイルすることもできますが、よく研究された手法を使えば驚くほど効率的なコードを生成できるようになります。そのような手法を2種類紹介します。 パターンマッチはデータ型に照合しそのデータを取り出すものです。例えばRustであれば match opt { Some(x) => f(x), None => g()} のように Option 型への照合などに使えます。本書の前半ではパターンマッチの挙動や使い方などを学びます。挙動の確認にはプログラミング言語Standard MLを使い、一部Cのコードも使います。その後Common LispやJavaなどの他の言語でのパターンマッチの状況を確認します。後半ではパターンマッチのコンパイル技法について紹介します。パタ

                                                    コンパイル技法: パターンマッチ
                                                  • Visual Studio 2022 - Visual Studio Blog

                                                    Visual Studio 2022 launch is here! Join us at our free online event to celebrate the launch of Visual Studio 2022. Learn about what’s new, hear tips & tricks, participate in the live Q&As, and be the first to take the latest version for a spin. All of our product development begins and ends with you—whether you posted on Developer Community, filled out a survey, sent us feedback, or took part in a

                                                      Visual Studio 2022 - Visual Studio Blog
                                                    • 米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始

                                                      米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始 アメリカ国防総省 DARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)は、C言語のコードからRust言語のコードへ高い精度での自動変換実現を目指す「TRACTOR」(Translating All C to Rust)プログラムの開始を発表しました。 DARPAは軍事技術の開発および研究を行う機関であり、現在のインターネットはDARPAの前身となるARPAが1967年に開始した「ARPANET」がその起源であることはよく知られています。 DARPAが発表したTRACTORプロジェクトは、C言語のコードからRust言語のコードへの自動変換を高い精度で実現することで、過去にC言語で開発された多くのソフトウェアをメモリ安全なソフ

                                                        米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始
                                                      • 【海外記事紹介】LinuxにおけるC/POSIX標準ライブラリの実装を比較したページが公開され海外で話題に

                                                        5月11日、Eta Labsが「Comparison of C/POSIX standard library implementations for Linux」と題した記事を公開した。この記事では、LinuxにおけるC/POSIX標準ライブラリの実装の比較について詳しく紹介されている。以下に、その内容を紹介する。このプロジェクトは、Linux上で利用可能なさまざまな標準ライブラリの実装を比較したもので、特に機能の充実度と無駄のバランスに焦点を当てている。著者はmuslの開発者であり、記事の中で各ライブラリの特徴を比較している。今後、この比較には詳細なパフォーマンスベンチマークと、GoogleのBionicや他のBSD libcポートなど、さらなるライブラリの実装が追加される予定である。ライブラリの膨張比較以下の表では、musl、uClibc、dietlibc、glibcの4つのライブラリ

                                                          【海外記事紹介】LinuxにおけるC/POSIX標準ライブラリの実装を比較したページが公開され海外で話題に
                                                        • 最近のC言語と、次期C標準(C23)

                                                          C言語といえば古い言語なイメージですが、その重要性はまだまだ落ちていません(多分)。重要な言語だからこそ、今もひっそりと進化を続けています。この記事では、そんなC言語の最近の動向を紹介します。 まずはC言語の前世紀の標準であるC99、現行の標準であるC11/C17を振り返り、その後に未来の標準であるC23に触れます。 C99 C99では色々追加されました。ここでは一部のみの紹介とします。 _Bool _Complex C++の std::complex とメモリ上での互換性がある(C++11以降)。 可変長配列(VLA) 可変長引数マクロ 浮動小数点数の強化 十六進表記 筆者による関連記事:浮動小数点数の16進表記 fma 筆者による関連記事:FMA (fused multiply-add) の話 #pragma STDC FENV_ACCESS, #pragma STDC CX_LIMI

                                                            最近のC言語と、次期C標準(C23)
                                                          • 2024年に特にお世話になったC++ライブラリ8選 - Qiita

                                                            今年も一番お世話になったライブラリです。 もう「メジャーなライブラリ」といっても良い気がしています。 Partial Read/Writeによる柔軟な読み書き、JSON-RPCやJMESPathへの対応など沢山の機能が追加され、更なる高速化も達成されています。 良い点 Partial ReadやCustom Read Functionsで柔軟なフィールドの読み込みができる 構造体やクラスだけでなくSTLコンテナもJSONとの直接読み書きができる 中間データに独自バイナリ形式を利用してさらに高速化できる いまいちな点 AVX512が使える環境だとsimdjsonより30%ぐらい遅い 最後のフィールドのカンマやコメントなど特殊なJSONには対応していない version 3.0.0以降はC++23が必要になった 代替ライブラリ 個人的にRyzen7 7700を使うようになってAVX512がまが

                                                              2024年に特にお世話になったC++ライブラリ8選 - Qiita
                                                            • JavaScript における VM の高速化手法

                                                              この記事は、JavaScript で Flash Player の実現を頑張った(もしくは現在進行系で頑張っている)人たちの集う Flash Advent Calendar 2020 に参加しております。 皆さん、JavaScript で VM を実装する経験をお持ちでしょうか?私は過去に Java VM と ActionScript VM を JavaScript で実装したことがあります。Flash Player において VM は最も重い場所になることが多く、ここの高速化は Engine 全体の性能に大きく寄与します。この記事では、私が Pex.js にて導入し、素晴らしい成果をあげた VM の高速化手法をご紹介しましょう。 とはいえ今更 ActionScript の VM の話をされても困ると思うので、この記事では簡単な Java VM のサブセットをターゲットにして説明をします。

                                                              • トヨタが開発しているCar OS (Arene) は、API開発言語はRust です。開発環境はTerraform と Ansible でAWSに構築できます。他社はどうなっているのでしょうか?

                                                                回答 (5件中の1件目) Arene は、トヨタとはいえ、TRI-AD という先端開発組織の成果物です。そこから容易に想像できる通り、現場の一歩先を見据えたものと捉えるのが妥当でしょう。 … 既に回答がついている通り、現行の車載システムは、複数のサプライヤが提供する多数の ECU がネットワークで疎結合されている構成です。開発言語は一つに規定できません。 ネットワークも、インフォテイメント系(カーナビとか)、ボディ系(ワイパーとかドアミラーとか)、パワー系(エンジンとか)、セーフティ系(衝突回避とか)に分かれていて、それぞれ使うバスが異なります。流れているパケットも異なります。各ノ...

                                                                  トヨタが開発しているCar OS (Arene) は、API開発言語はRust です。開発環境はTerraform と Ansible でAWSに構築できます。他社はどうなっているのでしょうか?
                                                                • 「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人” | ログミーBusiness

                                                                  1個の本質的な問題を解いてしまうほうが細かいことを考えるよりも簡単植山類氏:では始めます。本日、機会をいただいて講演をすることになった植山と申します。この講演の内容は「大きな問題のほうが小さな問題より解くのは簡単だ」というタイトルです。 どういう趣旨かというと、常に簡単だというわけではないのですが、いろいろな場面で、1個の本質的な問題をドッカンと解いてしまうほうが、いろいろな細かいことを考えるよりも簡単なことが多いという話です。 そういうソリューションが往々にして見逃されがちということがけっこうあって、そういうことにどうやって挑戦していくのかという気持ちの話を、僕がそういう大きな問題を解決した経験を踏まえて話をしていきたいと思います。 「LLVM lld」と「mold」が解決した問題僕が何を作ったかというと、リンカと言われるプログラムです。「LLVM lld」というリンカと、「mold」と

                                                                    「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人” | ログミーBusiness
                                                                  • ボレロ村上(村上原野)さんと constexpr のこと - d.y.d.

                                                                    22:22 21/11/20 ボレロ村上(村上原野)さんと constexpr のこと 去る2020年2月、縄文陶芸家にしてC++プログラマという希有な二つの顔を持つ人物がこの世を去りました。 ボレロ村上 (村上原野) 氏です。 正直なところ、陶芸家としての彼の側面については私はほとんど何も知らないに等しいです。 残された作品を見て何かを語れるほど芸術に通じているわけでもありません。 いつか機会があれば見に行こうと思っていた村上さんの作品を目にする最初の機会も、 昨年訪れた追悼展になってしまいました。 ただ、それでも私は、彼自身の登壇発表の資料 であったり、 そして何よりも縄文・陶芸に造詣の深い方々の記された幾つかの文章によって、 彼が一体何を成し遂げたのか、成し遂げようとしていたのかに触れることができています。 この夏にはクラウドファンディングで 作品集 も出版され、誰でも手にとって縄文

                                                                    • Python コードの高速化のアプローチ - Qiita

                                                                      はじめに こんにちは。こんばんはかもしれません。爲岡 (ためおか) と申します。 2020年4月から株式会社グロービスにて機械学習エンジニアとして働いています。 グロービスでは機械学習技術を利用したプロジェクトや、データ基盤の運用改善プロジェクトを担当しています。 機械学習技術を利用したシステムには様々なものがあると思いますが、 現状のグロービスにおいては、ユーザのリクエストに対して機械学習を行い、 すぐに結果を返す必要があるようなシステムは扱っておらず、 ある程度の時間をかけて学習、推定した結果を非同期にアプリケーションに連携するシステムのみを扱っています。 ゆえに、今のところは機械学習技術を利用したロジックを書くときに、速さを意識することはあまりありません。 一方で、空いている時間に競技プログラミングをやっていることもあり、 高速なコードについて考えたり、書いたりすることは個人的には好

                                                                        Python コードの高速化のアプローチ - Qiita
                                                                      • GitHub - carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

                                                                        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 - carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
                                                                        • なぜこれまでなかった? C言語の公式ホームページが新たに公開、テキスト中心の簡潔な内容【やじうまWatch】

                                                                            なぜこれまでなかった? C言語の公式ホームページが新たに公開、テキスト中心の簡潔な内容【やじうまWatch】
                                                                          • C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita

                                                                            これは、 C++ でコンパイル時に出力まで済ませようとした話です。 コンパイラは GCC に限ります。 はじめに もうすぐクリスマスですね! クリスマスにすることといえば……、 そう、コンパイル時処理ですね!! コンパイル時処理 C++ のコンパイル時処理は非常に強力で、様々なことがコンパイル時にできてしまいます。 普通はコンパイル時に決まる定数の計算に使われますが、これを悪用利用してコンパイル時に処理がすべて終わるようなものも書くことができます。 例として、コンパイル時 FizzBuzz を書いてみます。 #include <array> #include <string_view> #include <algorithm> #include <concepts> #include <iostream> template <std::unsigned_integral T> conste

                                                                              C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita
                                                                            • C言語でWasmインタプリタを実装した話

                                                                              概要 公式のcore testが全て(UTF8, WAT, SIMD関連のものは除く)通るWasmインタプリタをC言語でフルスクラッチで実装した。自作Wasmランタイムで省略されがちなValidation Stageも実装した。この記事はWebAssembly Advent Calendar 2023の三日目の記事である。 目的 このWasmランタイムを実装するにあたり、「できるだけ仕様に従って実装する」ことを心掛けた。Wasmの仕様書は以下のissueが立つほど読みにくいものとなっているが、ランタイムをどのように実装すべきかが詳しく書いてあり、一応仕様書を頑張って読めばランタイムが作れるようになっている。 この自作Wasmランタイムの目的は、できるだけ仕様に従った実装を与えることで、仕様の理解を助けることである。早さや効率性よりも分かりやすさを優先しているため、実用には向かない。仕様書を

                                                                                C言語でWasmインタプリタを実装した話
                                                                              • mints: 5.7kb の TypeScript コンパイラを作った

                                                                                世の中の TypeScript コンパイラが大きすぎるので作りました。 ここで試せます。 jsx と jsx pragma のサポートもしたので、 preact も動いています。 実装方針 ビルドサイズ第一 とにかく軽量に mints自体が他のコードをビルドするときの速度ではない点に注意 現状、まともなエラーレポートが出ない。エラーメッセージをインライン化するとビルドサイズが増えるため。 空白行と型情報を落とすだけ ES5 への変換や commonjs への変換は実装しない enum と constructor と jsx のみ transform する特殊対応をしている 真面目な構文解析をしてない 例えば 1+1*2 のような binary expression は結合順を解析してない。型を落とすだけなら不要 prettier でフォーマットされたコードはコンパイルできるのが目標(空白行

                                                                                  mints: 5.7kb の TypeScript コンパイラを作った
                                                                                • 【C】srand(time(NULL))をしても同じ乱数が生成される

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

                                                                                    【C】srand(time(NULL))をしても同じ乱数が生成される

                                                                                  新着記事