ダングリングポインタ
2.0ダングリングポインタとは、解放済みのメモリ領域を指し示すポインタのことである。このポインタを介してメモリにアクセスすると、プログラムのクラッシュやセキュリティ上の脆弱性を引き起こす可能性がある。C言語やC++などの低レベル言語において、メモリ管理の誤りとしてよく見られる問題である。
30 件
ダングリングポインタとは、解放済みのメモリ領域を指し示すポインタのことである。このポインタを介してメモリにアクセスすると、プログラムのクラッシュやセキュリティ上の脆弱性を引き起こす可能性がある。C言語やC++などの低レベル言語において、メモリ管理の誤りとしてよく見られる問題である。
ハッシュ関数について解説するページ。文字列からハッシュ値を生成する代表的なアルゴリズム(ハッシュ関数の実装例)として、ハッシュ値の計算に加算やビットシフト、XORを用いた方法など、いくつかの異なる手法をC言語のソースコードとともに紹介している。また、シンプルなハッシュ関数から、より複雑なハッシュ関数まで段階的に説明している。
Van Wijngaarden文法(W-grammarとも呼ばれる)は、文脈自由文法を2段階に拡張した形式文法である。オランダの数学者でありコンピュータ科学者であるAdriaan van Wijngaardenによって考案され、プログラミング言語Algol 68の構文定義に使用された。この文法は、無限の生成規則集合を有限のメタルールで記述できる特徴を持つ。
「Program-as-Weights」は、ファジィ関数(あいまいな入出力関係を持つ関数)を扱うための新しいプログラミングパラダイムを提案する。従来の関数型プログラミングとは異なり、プログラムそのものを重みとして扱うことで、柔軟で近似計算を可能にする手法を提示している。
AIが実装部分で非常に優れた能力を発揮するようになるにつれ、人間が集中すべきは「何を構築するか」だけになるかもしれない。この変化によってコンピュータサイエンスの焦点も変わり、実装方法よりも構築すべきものの選定に重きが置かれるようになるのだろうか。
This paper explores the profound impact of Alfred Tarski's work in logic and model theory on the foundations of computer science. It examines how Tarski's semantic methods, particularly his definition of truth and model-theoretic semantics, have shaped programming language theory, database theory, and formal verification.
van Emde Boas木(vEB木)は、整数キーを効率的に格納・検索するための木構造データ構造であり、挿入、削除、検索、および次/前の要素の検索をO(log log M)時間で実行できる。ここでMはキーの最大値である。このデータ構造はPeter van Emde Boasによって考案された。
著者が現在執筆中の「Functional Programming Strategies」という本について紹介しています。関数型プログラミングの戦略や設計パターンを体系的に学べる内容で、実践的なアプローチを重視している書籍です。
本論文では、文書の構造と操作を形式的にモデル化するためのコア計算体系「λ-doc」を提案する。この体系は、文書を第一級の値として扱い、文書の合成、変換、クエリ操作を型安全に実行できる。ラムダ計算を拡張したこの体系は、文書処理言語の理論的基盤を提供する。
本稿では、分散システムや並行プログラミングにおいて、グローバルな特性(データ整合性や一貫性など)を保証するために、ローカルな推論手法をどのように活用できるかを考察する。従来のグローバルな解析はスケーラビリティに欠けるが、ローカルな観察と推論を組み合わせることで、効率的かつ堅牢な検証が可能になることを示す。
暗号学における「難読化(Obfuscation)」の概念を解説。プログラムの動作を完全に隠蔽しながらも正しく実行できる技術であり、暗号学の「ラスボス」とも呼ばれるその可能性と課題について、基礎から丁寧に紐解く前編。
このサイトは、型システムに関する様々な反例を体系的に収集・解説している。各反例は、特定の型システムの特性や限界を示す具体的なコード例とともに提示され、プログラミング言語の型理論を深く理解するためのリソースを提供する。
Iconは、文字列処理とデータ構造操作に優れた高水準プログラミング言語である。1970年代にラルフ・グリスゴルらによって開発され、目標指向評価(goal-directed evaluation)と呼ばれる独自の評価戦略と、成功/失敗を活用した制御構造が特徴。特に文字列スキャニングやジェネレータを用いた柔軟なプログラミングが可能で、後継言語のUniconへと発展した。
アラン・マシソン・チューリング(1912-1954)は、英国の数学者、論理学者、暗号解読者であり、コンピュータ科学の父の一人と広く見なされている。彼はチューリングマシンの概念を導入し、現代のコンピューティングの理論的基盤を築いた。第二次世界大戦中は、エニグマ暗号の解読において極めて重要な役割を果たし、その功績は戦争終結に大きく貢献した。
Show HNは、DBLP(コンピュータサイエンス文献データベース)の著者プロファイルに、国際的な学会・会議のランキング(Core Rankings)を統合して表示するツール「Core Rankings for DBLP Profiles」を紹介します。このツールを使うと、DBLP上の各論文が掲載された会議やジャーナルが、Coreコンピュータサイエンス会議ランキングでどの区分(A*, A, B, C)に該当するかを一目で確認できます。
Dr. Alan Kay, the pioneer who coined the term "object-oriented programming," shares his original vision behind OOP — focusing on messaging, encapsulation, and late binding rather than the common modern interpretation centered on classes and inheritance. He discusses how the core ideas were inspired by biological cells and early computer science concepts.
2011年に公開された本記事では、ソフトウェア開発者がキャリアを通じて少なくとも2回は読むべき重要な技術論文10本を紹介している。プログラミング言語設計、分散システム、並行処理、アルゴリズムなど多岐にわたる分野の古典的論文を取り上げ、それぞれの論文が現代のソフトウェア開発に与えた影響と、読むことで得られる洞察について解説している。
本記事は、現在のコンパイラ教育が理論に偏り、実践的なスキルやモダンなツールチェーンを軽視している問題を指摘。オープンソースの実践プロジェクトや最新のコンパイラ技術を取り入れた教育カリキュラムの刷新を提唱している。
本書は、プログラミング言語における制御構造の理論と実践について解説する。逐次実行、条件分岐、ループなどの基本的な制御構造から、例外処理、継続、コルーチンなどの高度な概念までをカバーし、各言語における実装の違いや設計思想を比較する。プログラミング言語理論に興味を持つ読者向けの包括的なリソースである。
ガベージコレクション(GC)の基礎から最先端技術までを網羅した決定版リファレンス。自動メモリ管理の理論と実装を体系的に解説し、現代のプログラミング言語ランタイムにおけるGCアルゴリズムの設計・最適化手法を詳述する。
計算機科学の主要概念を元素周期表のように視覚的に整理したインタラクティブなウェブページ。各「元素」はアルゴリズムやデータ構造、プログラミングパラダイムなどの計算機科学の基本的な要素を表しており、クリックすることで詳細説明を参照できる。
『コンピュータと脳』は、数学者・コンピュータ科学者ジョン・フォン・ノイマンの未完の著書であり、脳の神経構造とコンピュータのアーキテクチャを比較・対比した先駆的な著作である。彼は神経系のアナログ的な性質とデジタルコンピュータの本質的な違い、そして両者の情報処理の類似性について考察を展開した。この書物は晩年のフォン・ノイマンがシルマン記念講演のために準備した草稿をもとに、死後1958年に出版された。
本動画では、分割可能(splittable)な擬似乱数生成器(PRNG)の新しい方式「LXM」を紹介。LXMは、従来の分割可能PRNGと比較して乱数品質を向上させつつ、実行速度は従来手法と同等かそれ以上を実現する。具体的なアルゴリズム設計と性能評価結果が示される。
ペトリネットは、離散事象システムのモデリングと解析に用いられる数学的・グラフィカルな表現手法である。この動画では、プレース、トランジション、トークンといった基本要素から、並列処理や同期、資源競合などの振る舞いを記述する方法までを概説する。ペトリネット理論の基礎を初学者向けに解説した入門的な内容となっている。
形式検証(フォーマル・ベリフィケーション)は、ソフトウェアの正しさを数学的に証明する手法だが、その実態や限界は広く誤解されている。本記事では、形式検証の基本的な概念から実用上の課題までを解説し、特にテストとの違いや、完全な検証が現実的に不可能なケースがあることを指摘する。エンジニアが形式検証を正しく理解し、適切に活用するための洞察を提供する。
Edsger Dijkstra's personal library, including his books, notes, and correspondence, is housed and archived in Leuven, Belgium. The collection provides valuable insight into the thoughts and work of the influential computer scientist.
A crossword puzzle that tests your knowledge of key concepts and ideas from influential computer science research papers. Solve clues related to seminal works in fields such as algorithms, artificial intelligence, and systems.
本修士論文は、分散システムにおける汎用同期(Generalized Sync)の理論的・実用的限界を探求する。特に、同期プロトコルが直面するスケーラビリティと一貫性のトレードオフを分析し、既存の同期手法では解決が困難な問題領域を明らかにする。研究結果は、大規模分散環境での効率的な同期戦略の設計に重要な洞察を提供する。
This interactive webpage presents a visual "Periodic Table of Computing," organizing fundamental concepts in computer science, programming, and technology into a periodic table-like layout. It categorizes topics such as programming languages, algorithms, data structures, hardware, and software into groups, making it a useful educational reference for learners and enthusiasts. The table provides clickable entries with brief descriptions for each concept.
この動画は、15種類の異なるソートアルゴリズムを6分間で視覚的に比較・紹介している。バブルソートやクイックソートから、ヒープソート、マージソート、シェルソートなど多様なアルゴリズムがどのようにデータを並べ替えるのかを、色分けされた棒グラフのアニメーションで直感的に理解できる。