並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 22 件 / 22件

新着順 人気順

c programming typedef arrayの検索結果1 - 22 件 / 22件

  • プログラミング言語論入門 - riswu’s blog

    第0章. なぜ Scala を使うのか? はじめに 本稿は、John C. Mitchell 氏らによる Concepts in Programming Languages を基に自身の見解を交え、私がなぜ Scala を好んで使うのかを論じた記事になります。 プログラミング言語の歴史 本題に入る前に、プログラミング言語の歴史について紹介します。 年代 言語・イノベーション 1950 Fortran and Cobol 1960 Lisp and Algol 1970 Abstract data types (Simula, C, SQL) 1980 Objects (Smalltalk, C++) 1990 Java, JavaScript, Python, Ruby これは、年代ごとに開発された言語およびイノベーションを表にまとめたものになります。ただし、この表には欠けている事柄があり

      プログラミング言語論入門 - riswu’s blog
    • Announcing TypeScript 5.0 - TypeScript

      Today we’re excited to announce the release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript smaller, simpler, and faster. We’ve implemented the new decorators standard, added functionality to better support ESM projects in Node and bundlers, provided new ways for library authors to control generic inference, expanded our JSDoc functionality, simplified con

        Announcing TypeScript 5.0 - TypeScript
      • JavaScript Best Practices | The WebStorm Blog

        IDEs CLion DataGrip DataSpell Fleet GoLand IntelliJ IDEA PhpStorm PyCharm RustRover Rider RubyMine WebStorm Plugins & Services Big Data Tools Code With Me JetBrains Platform Scala Toolbox App Writerside JetBrains AI Grazie Junie JetBrains for Data Kineto Team Tools Datalore Space TeamCity Upsource YouTrack Hub Qodana CodeCanvas .NET & Visual Studio .NET Tools ReSharper C++ Languages & Frameworks K

          JavaScript Best Practices | The WebStorm Blog
        • Writing a C compiler in 500 lines of Python

          A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python1, after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog

          • 2023年のコンパイル時レイトレーシング - in neuro

            これは qiita.com の12/16の記事です。やばいもう16日が終わってしまう! はじめに 太古の昔、あるC++プログラマ*1がtemplateの再帰と特殊化を使ってコンパイル時に計算ができることを「発見」*2*3したその日から、C++とコンパイル時計算は分かちがたく結びついています。 言語機能を本来意図されていなかった方法で活用する曲芸的な技巧だったコンパイル時計算は、その強力さを買われコミュニティを席巻し、C++11での constexpr の導入によりある意味で公式に認められたものとなりました。 導入当初は return 文一つだけしか持てなかった constexpr 関数は、それでも三項演算子による条件分岐や再帰によってコンパイル時計算を大いに盛り上げました。 そしてC++14で条件分岐、ループ、変数の書き換えが、C++17ではラムダが、C++20では仮想関数と動的メモリ確保

              2023年のコンパイル時レイトレーシング - in neuro
            • Making a 3D Modeler, in C, in a Week

              Last fall I participated in a week long programming event called the Wheel Reinvention Jam. The point of the Jam was to revisit existing software systems with fresh eyes. I ended up making a 3D modeler called “ShapeUp”. This post will make more sense if you watch the video demo of ShapeUp before reading more. You can try ShapeUp in your browser. This is what it looks like: Mike Wazowski modeled in

                Making a 3D Modeler, in C, in a Week
              • Changing std::sort at Google’s Scale and Beyond

                TL;DR; We are changing std::sort in LLVM’s libcxx. That’s a long story of what it took us to get there and all possible consequences, bugs you might encounter with examples from open source. We provide some benchmarks, perspective, why we did this in the first place and what it cost us with exciting ideas from Hyrum’s Law to reinforcement learning. All changes went into open source and thus I can

                  Changing std::sort at Google’s Scale and Beyond
                • Writing a simple pool allocator in C

                  I found out about pool allocators some time ago, and I really liked its simplicity and high performance, so I decided to write my own. This article was initially inspired by Dmitry Soshnikov’s article. It’s also worth mentioning that this article was discussed in Hacker News. Similarly to malloc, a pool allocator allows the user to allocate memory at run time. The pool allocator, however, is much

                  • Fuzzing Farm #4: 0-dayエクスプロイトの開発 [CVE-2022-24834]

                    著者:Dronex, ptr-yudai はじめに この記事は、Fuzzing Farmシリーズ全4章のパート4で、パート3の記事「Fuzzing Farm #3: パッチ解析とPoC開発」の続きです。 Fuzzing Farmチームでは、前回の記事で紹介したように、1-dayエクスプロイトだけでなく0-dayエクスプロイトの開発にも取り組んでいます。Fuzzing Farmシリーズ最終章では、弊社エンジニアが発見した0-dayと、そのエクスプロイト開発について解説します。 我々は1年以上前の2022年4月の段階で、CVE-2022-24834に該当するRedisの脆弱性を発見し、RCE(Remote Code Execution; 任意コマンド実行)エクスプロイトの開発を完了していました。ベンダ側も修正を急いでくれましたが、利用者側の対応に時間を要したため、前回パート3の記事から今回の投

                      Fuzzing Farm #4: 0-dayエクスプロイトの開発 [CVE-2022-24834]
                    • Announcing TypeScript 5.0 RC - TypeScript

                      Today we’re excited to announce our Release Candidate of TypeScript 5.0! Between now and the stable release of TypeScript 5.0, we expect no further changes apart from critical bug fixes. This release brings many new features, while aiming to make TypeScript, smaller, simpler, and faster. We’ve implemented the new decorators standard, functionality to better support ESM projects in Node and bundler

                        Announcing TypeScript 5.0 RC - TypeScript
                      • 0.8.0 Release Notes ⚡ The Zig Programming Language

                        Tier 4 Support § Support for these targets is entirely experimental. If this target is provided by LLVM, LLVM may have the target as an experimental target, which means that you need to use Zig-provided binaries for the target to be available, or build LLVM from source with special configure flags. zig targets will display the target if it is available. This target may be considered deprecated by

                        • 0.10.0 Release Notes ⚡ The Zig Programming Language

                          Tier 4 Support § Support for these targets is entirely experimental. If this target is provided by LLVM, LLVM may have the target as an experimental target, which means that you need to use Zig-provided binaries for the target to be available, or build LLVM from source with special configure flags. zig targets will display the target if it is available. This target may be considered deprecated by

                          • Rust for Secure IoT Applications: Why C Is Getting Rusty

                            www.embedded-world.eu Rust for Secure IoT Applications Why C Is Getting Rusty Mario Noseda, Fabian Frei, Andreas Rüst, Simon Künzli Zurich University of Applied Sciences (ZHAW) Institute of Embedded Systems (InES) Winterthur, Switzerland mario.noseda@zhaw.ch, fabian.frei@zhaw.ch, andreas.ruest@zhaw.ch, simon.kuenzli@zhaw.ch Abstract— Memory corruption is still the most used type of exploit in toda

                            • Lesser known tricks, quirks and features of C

                              Mini-post: Digraphs and Trigraphs | ENOSUCHBLOG C alternative tokens - Wikipedia Why are there digraphs in C and C++? - Stack Overflow Purpose of Trigraph sequences in C++? A brief description of Normative Addendum 1 Designated initializer # These allow you to specify which elements of an object (array, structure, union) are to be initialized by the values following. The order does not matter! str

                              • cuneicode, and the Future of Text in C

                                Following up from the last post, there is a lot more we need to cover. This was intended to be the post where we talk exclusively about benchmarks and numbers. But, I have unfortunately been perfectly taunted and status-locked, like a monster whose “aggro” was pulled by a tank. The reason, of course, is due to a few folks taking issue with my outright dismissal of the C and C++ APIs (and not showi

                                  cuneicode, and the Future of Text in C
                                • Writing a system call tracer using eBPF

                                  Pre-RequisitesSystem calls, eBPF, C, basics of low-level programming. IntroductioneBPF (Extended Berkeley Packet Filter) is a technology that allows users to run custom programs within the kernel. BPF / or cBPF (classic BPF), the predecessor of eBPF provided a simple and efficient way to filter packets based on predefined rules. eBPF programs offer enhanced safety, portability, and maintainability

                                    Writing a system call tracer using eBPF
                                  • 地面を見下ろす少年の足蹴にされる私

                                    Contracts提案(P2900R14)がC++26に向けて採択され、C++26では契約プログラミング機能を言語サポートの下で実践できるようになります。この記事は、その契約プログラミング機能の一部として導入されている違反ハンドラというものについてのお話です。 契約プログラミング機能における違反ハンドラの概要 ユーザー定義違反ハンドラ std::contracts::contract_violation より一般的な利用 外部ツールの共通コールバック機構として 実行時エラーハンドリングのコールバック機能として(P3290R2) プロファイル機能の実行時検査におけるコールバックとして(P3081R0) 未定義動作の実行時ハンドリング機能として(P3100R0, P3229R1, P3205R0) 参考文献 契約プログラミング機能における違反ハンドラの概要 C++26の契約プログラミング機能は

                                      地面を見下ろす少年の足蹴にされる私
                                    • Pointers Are Complicated III, or: Pointer-integer casts exposed

                                      Pointers Are Complicated III, or: Pointer-integer casts exposed In my previous blog post on pointer provenance, I have shown that not thinking carefully about pointers can lead to a compiler that is internally inconsistent: programs that are intended to be well-behaved get miscompiled by a sequence of optimizations, each of which seems intuitively correct in isolation. We thus have to remove or at

                                      • STM32でUSB DFUブートローダを実装

                                        STM32を使い、自前でファームウェア更新機能を搭載する方法を解説します。 GitHubでソースコードを公開しています。 1.はじめに STM32にはファームウェア更新機能が内蔵された機種が多く、STではこの機能を「ブートローダ」と呼んでいる。(→AN2606)。 内蔵ブートローダは様々なペリフェラルに対応しており、特にDFU(Device Firmware Upgrade)プロトコルを使えば、USB経由で手軽にファームウェアを更新できる(→「マイクロコントローラのDFUモードを使用して現場でファームウェアを更新」, Digikey)。 ただし、内蔵ブートローダでDFUを使う場合、以下の問題がある。 問題1: USBデバイス名が「STM32 BOOTLOADER」または「STM Device in DFU Mode」に固定され、さらにUSBのVID/PIDが固定のため、ホスト側から機器の判

                                          STM32でUSB DFUブートローダを実装
                                        • Rust and dynamically-sized thin pointers

                                          One of Rust's notable differences from C is its requirement that all values have a defined size, which enables runtime bounds-checking and advanced static analysis tooling such as MIRI. For dynamically-sized types (DSTs) this requirement is implemented using thick pointers, such that each pointer to a dynamically-sized value is an (address, size) tuple. Thick pointers are more convenient and easie

                                          • fork, select, poll, epoll, io_uringのecho server - suzuzusu日記

                                            fork, select, poll, epoll, io_uringなどを使用してそれぞれecho serverを実装したのでそれぞれの仕様などを忘備録としてまとめていきます。エラー処理とか雑な部分があると思いますがご容赦ください。 環境構築 macOS上での実行を前提にします。io_uringを使う場合にはlinux kernel 5.1以上でないと動かないので、multipassというubuntuのVMを手軽に作成できるツールを使って実行環境を構築します。 multipassのインストール brew install --cask multipass 20.10のubuntuを用意して、gccやio_uringのライブラリであるliburingを入れます。 multipass launch 20.10 -n primary multipass shell # login sudo ap

                                              fork, select, poll, epoll, io_uringのecho server - suzuzusu日記
                                            • Following up on the Python JIT

                                              Performance of Python programs has been a major focus of development for the language over the last five years or so; the Faster CPython project has been a big part of that effort. One of its subprojects is to add an experimental just-in-time (JIT) compiler to the language; at last year's PyCon US, project member Brandt Bucher gave an introduction to the copy-and-patch JIT compiler. At PyCon US 20

                                              1