2025年8月12日(火)◆用語整理
1. HTML
-
正式名称:HyperText Markup Language
-
定義
ウェブページを記述するための標準的なマークアップ言語。文章の構造や意味をタグ(<p>
,<h1>
など)で指定する。 -
由来
- HyperText:単なるテキストではなく、リンクによって他の文書や情報へジャンプできる仕組み
- Markup:文章に構造や意味を与えるための注釈や指示を付けること
- Language:コンピュータが理解できる形式化された言語
-
役割
- ウェブページの構造(見出し・段落・表・リンクなど)を記述
- CSS(見た目のデザイン)やJavaScript(動作や機能)と組み合わせて使われる
2. Markup Language(マークアップ言語)
-
定義
文書やデータの構造・意味・属性をタグや特定の記号で示す言語の総称。
HTMLもその一種。 -
由来
- Markup:印刷や編集の世界で、原稿に「ここを太字に」「ここに見出し」などの指示を書き込むこと
- Language:機械や人間が解釈可能な記述体系
-
役割
- 文書の意味づけや階層構造を明示
- データのやりとりや表示方法を規定(例:HTML, XML, Markdown, LaTeX)
3. プログラミング言語
-
定義
コンピュータに処理の手順(アルゴリズム)や動作を指示するための言語。 -
由来
- Programming:プログラム(手順書)を作成する行為
- Language:その記述に使う文法体系
-
特徴とHTMLとの違い
- プログラミング言語は**「処理を実行」**する(例:計算、条件分岐、繰り返し)
- HTMLは**「文書構造を記述」**するだけで、処理の制御はできない
- 例:JavaScript, Python, C, Java など
-
役割
- ソフトウェア・アプリケーション・システムを構築
- データ処理や自動化、制御
4. Web
-
正式名称:World Wide Web(WWW)
-
定義
インターネット上で、HTML文書(ウェブページ)をリンクで相互に結び、ブラウザで閲覧できる仕組み。 -
由来
- World Wide:全世界的な
- Web:クモの巣のように情報が相互にリンクしている構造から
-
役割
- 情報の公開・共有(ニュース、ブログ、SNSなど)
- 双方向のやり取り(フォーム送信、Webアプリ利用など)
- インターネットの代表的サービスの一つ(他にはメール、FTPなどもある)
もしご希望なら、この4つの用語を**図解(HTML → Web の中での位置づけ、Markup Languageやプログラミング言語との関係)**にして可視化できます。
そうするとHTMLがどこに位置づく技術なのか一目でわかります。
2025年8月13日(水)◆用語整理
了解です。先ほどの内容を箇条書き形式に整理して出します。
-
HTML2.0:1995年IETF標準化の初期正式版HTML。基本的なテキスト構造、リンク、画像、フォームをサポート。
-
HTML3.2:1997年W3C勧告。NetscapeやIEの独自タグを統合し、
<table>
やスクリプトを標準化。 -
HTML4.0:1997年W3C勧告。国際化対応、CSSサポート、フレームやスクリプトの明確化。
-
HTML4.01:1999年W3C勧告。4.0の改訂安定版。HTML5登場まで長期使用。
-
HTML5:2014年W3C勧告(WHATWGでは継続更新)。
<video>
、<audio>
、<canvas>
追加、非推奨タグ整理。 -
Body Background:
<body>
タグのbackground
属性。背景画像指定。HTML4.01で非推奨、CSSで代替。 -
バリデーションエラー:HTMLやCSSが仕様に沿っていない状態。W3C Validatorなどで検証可能。
-
後方互換:新仕様が古い仕様の動作を壊さない方針。HTML5はHTML4.01の多くを解釈可能。
-
WWW(World Wide Web):インターネット上のハイパーテキストシステム。HTML+HTTP+ブラウザで構成。
-
ハイパーテキスト:リンクで他文書に飛べるテキスト構造。
-
ティム・バーナーズ=リー:WWWの発明者。HTML、HTTP、最初のブラウザとサーバーを開発。
-
Information Management: A Proposal:1989年、ティムがCERNに提出したWWW構想提案書。
-
httpd:HTTPサーバープログラムの通称(HTTP Daemon)。最初はCERNで開発、後にApacheへ発展。
-
NCSA Mosaic:1993年公開のGUIブラウザ。画像とリンクを統合表示。WWW普及の契機。
-
W3C:World Wide Web Consortium。Web標準化団体(HTML, CSS, XML等を策定)。
-
Netscape Navigator:1994年登場の商用ブラウザ。JavaScriptやSSLの先駆け。
-
CSS(Cascading Style Sheets):Webページの見た目を指定するスタイル言語。HTMLの構造とデザインを分離。
-
JavaScript:ブラウザ上で動くプログラミング言語。動的UIやフォーム検証に利用。
-
LiveScript:JavaScriptの旧称。Java人気に便乗して改名。
-
PHP:サーバーサイドスクリプト言語。動的ページ生成やフォーム処理に使用。
-
Javaアプレット:Javaで作られたブラウザ内アプリ。セキュリティ問題で廃止傾向。
-
動的コンテンツ:ユーザーや状況によって変化するWebコンテンツ。例:ニュース更新、会員ページ。
-
検索エンジン:Webページを検索するシステム。Google, Yahoo!など。
-
ブロードバンド:高速大容量インターネット接続。動画配信や常時接続を普及。
-
Web2.0:2004年頃の次世代Web概念。双方向性・SNS・ユーザー生成コンテンツが特徴。
-
Flash:Adobe(旧Macromedia)のマルチメディア技術。アニメ・動画再生に利用(2020年終了)。
-
レスポンシブデザイン:画面サイズに応じてデザインを最適化する設計手法。
-
クラウド:インターネット経由で計算資源やサービスを提供。ストレージやアプリも含む。
もしご希望なら、これを**年代順に並べた「Web進化年表」**にしてお渡しできます。
そうすると時代ごとの用語の関係が一目でわかります。
2025年8月14日(木)◆用語解説
-
Webアプリ:Webブラウザ上で動作するアプリケーション。インストール不要でURLから利用可能。
-
ハイパーリンク:クリックやタップで他の文書や場所へ移動するリンク。
<a>
タグで指定。 -
SGML(Standard Generalized Markup Language):標準汎用マークアップ言語。HTMLの元となった国際規格。
-
HTML1.0:1993年頃に普及した初期HTML仕様。正式標準ではなくブラウザ実装ベース。
-
IETF(Internet Engineering Task Force):インターネット技術標準化団体。RFCとして仕様を策定。
-
背景色:Webページの背景の色。HTML属性やCSSの
background-color
で指定。 -
テーブル表示:表形式でデータを配置する方法。HTMLでは
<table>
タグを使用。 -
タグ属性:HTMLタグに追加情報や設定を与えるキー=値の形式(例:
<img src="...">
のsrc
)。 -
パーサー(Parser):文字列やコードを解析して構造化データに変換する処理系コンポーネント。
-
レンダラー(Renderer):解析されたデータを実際に表示や描画に変換するコンポーネント。
-
Python:汎用プログラミング言語。簡潔な文法と豊富なライブラリでWeb開発やAIなどに広く利用。
-
言語仕様:プログラミング言語の構文・文法・動作ルールを定めた正式な仕様書。
-
処理系:プログラミング言語を実行するためのソフトウェア(コンパイラやインタプリタなど)。
-
ドキュメント:システムやコードの仕様・使い方・設計などを説明した文書。
-
互換性:異なるバージョンや環境間で動作やデータが共通して利用できる性質。
-
ePub:電子書籍の国際標準フォーマット。HTMLやCSSを基盤に構成される。
-
目的設定:作業や開発において達成したいゴールを明確にする工程。
-
安全性:システムやデータが危害・損失を受けない状態や性質。
-
速度:処理や通信の速さ。プログラムやネットワークの性能指標の一つ。
-
並行性(Concurrency):複数の処理を同時進行させる性質や設計手法。
-
DSL性(Domain-Specific Language):特定分野向けに設計された専用言語の性質。例:SQL(データベース)、HTML(文書構造)。
-
構文(Syntax):言語の文や式の形を定めるルール。記号やキーワードの並び方を規定。
-
BNF(Backus–Naur Form):構文を形式的に記述するためのメタ言語。
-
EBNF(Extended BNF):BNFを拡張し、繰り返しや選択などを簡潔に表現可能にした構文記法。
-
PEG(Parsing Expression Grammar):構文解析のための形式文法。曖昧性がなく、トップダウン構文解析に適する。
-
曖昧性(Ambiguity):構文ルールで同じ文が複数の解釈を持つ性質。パーサー実装上の問題になりやすい。
-
前置・中置・後置:演算子の位置による分類(例:
+3
=前置、3+4
=中置、3 4 +
=後置)。 -
優先順位(Precedence):演算子同士でどちらを先に評価するかの規則。
-
結合規則(Associativity):同じ優先順位の演算子をどちらから処理するか(左結合・右結合)。
-
意味論(Semantics):構文が意味する内容や動作の定義。
-
評価規則(Evaluation Rules):プログラムや式をどのように計算・実行するかの具体的手順。
-
スコープ(Scope):変数や関数が参照可能な範囲。静的スコープと動的スコープがある。
-
束縛(Binding):名前(識別子)と値や意味を関連付けること。
-
可変(Mutable):値や状態を後から変更できる性質。
-
不変(Immutable):値や状態を変更できない性質。
-
評価戦略(Evaluation Strategy):式や関数引数を評価するタイミングや方法(例:正格評価・遅延評価)。
-
操作的意味論(Operational Semantics):プログラムの動作を抽象機械上のステップとして定義する意味論。
-
公理的・私事的意味論:公理的(Axiomatic)はプログラムの正しさを論理的公理で定義、私事的(Denotational)は数学的関数として定義。
-
環境モデル(Environment Model):変数や関数を「環境」というデータ構造で管理する実行モデル。
-
静的・動的:静的は実行前に決まる(コンパイル時)、動的は実行中に決まる(ランタイム時)。
-
型推論(Type Inference):明示的に型を書かなくてもコンパイラが型を自動で推定する仕組み。
-
代数的データ型(Algebraic Data Type, ADT):複数の型を組み合わせて作る新しい型。和型・積型を含む。
-
ジェネリックス(Generics):型をパラメータ化して汎用的なコードを記述する仕組み。
では、この非常に多い用語群を箇条書きで簡潔に定義します。
必要に応じて由来や用途も付けますが、短くまとめています。
言語仕様・型システム関連
- エフェクト(Effect):関数や式が実行時に及ぼす副作用(I/O、状態変更など)の情報。
- 所有者モデル(Ownership Model):データの所有権とライフタイムを管理する仕組み(例:Rust)。
- 単一化(Unification):型推論やパターンマッチで型・値を統一する手続き。
- サブタイピング(Subtyping):ある型を別の型の部分集合として扱う関係(例:継承階層)。
- リージョン(Region):メモリやリソースの寿命をまとめて管理する領域単位。
- 借用チェック(Borrow Checker):所有権や参照ルールの静的検査(Rust)。
- エラーモデル(Error Model):言語でのエラー表現方法(例外・結果型など)。
- 例外(Exception):異常時に通常の制御フローを飛ばす仕組み。
-
結果型(Result Type):成功または失敗を値で表す型(Rustの
Result
等)。 - チェック例外(Checked Exception):宣言が必須の例外(Java)。
- 制御フロー(Control Flow):プログラムの実行順序や分岐構造。
- 標準ライブラリ(Standard Library):言語と共に提供される基本的API群。
- 最小核(Minimal Core):言語仕様の中核となる最小限の構文・機能。
- 文字列(String):テキストデータ型。
- 配列(Array):固定長または可変長の連続データ構造。
- マップ(Map / Dictionary):キーと値の対応付けを行うデータ構造。
- 入出力(I/O):外部とのデータ読み書き。
コンパイラ・パーサ関連
- 字句解析(Lexical Analysis):文字列をトークン単位に分割する処理。
- 構文解析(Parsing):トークン列を文法に基づき構造化(構文木化)する処理。
- 手書き(Hand-written Parser):パーサを自前で実装する方法。
- パーサジェネレータ(Parser Generator):文法定義からパーサを自動生成するツール。
- インクリメンタル解析(Incremental Parsing):変更部分だけ再解析する方法。
- 中間表現(Intermediate Representation, IR):コンパイル中間段階のプログラム表現。
- AST(Abstract Syntax Tree):抽象構文木。構文の階層構造を表現。
- SSA(Static Single Assignment):各変数に一度だけ代入する形の中間表現。
最適化関連
- 最適化(Optimization):プログラムを効率化する変換処理。
- 定数畳み込み(Constant Folding):コンパイル時に定数計算を先に行う。
- DCE(Dead Code Elimination):使われないコードを削除。
- CSE(Common Subexpression Elimination):同じ計算結果を再利用して重複計算を削減。
- インライン化(Inlining):関数呼び出しを直接展開して呼び出しコスト削減。
実行・バックエンド関連
- インタプリタ(Interpreter):ソースコードや中間表現を逐次実行する方式。
- AOTコンパイル(Ahead-Of-Time):実行前に機械語にコンパイル。
- LLVM:低レベル仮想マシン基盤。最適化やコード生成に利用。
- JIT/VM(Just-In-Time / Virtual Machine):実行中にコンパイル(JIT)し仮想マシンで動作。
- WASMターゲット(WebAssembly Target):WebAssembly向けコード生成。
- コード生成(Code Generation):中間表現から実行可能コードを生成。
- レジスタ割り当て(Register Allocation):変数をCPUレジスタに効率配置。
- 呼出規約(Calling Convention):関数呼び出し時の引数渡しや戻り値の扱い規則。
- ABI(Application Binary Interface):異なるプログラム間でのバイナリ互換ルール。
- ランタイム(Runtime):プログラム実行時に必要な機能群(GC、スレッド管理等)。
- ガーベジコレクタ(Garbage Collector):不要メモリの自動解放。
- アロケータ(Allocator):メモリ確保を行う仕組み。
並行・並列・安全性関連
- スレッド(Thread):並行実行の最小単位。
- アクタ(Actor):メッセージパッシングによる並行モデル。
- グリーンスレッド(Green Thread):OSではなくランタイムが管理する軽量スレッド。
- メモリモデル(Memory Model):並行環境でのメモリ読み書きの一貫性規則。
- データ競合(Data Race):複数スレッドが同時に同じデータを変更する危険状態。
- 未定義動作(Undefined Behavior):仕様で結果が保証されない実行。
- 境界チェック(Bounds Check):配列アクセス範囲の検証。
- 型健全性(Type Safety):型の不一致や不正操作を防ぐ性質。
- サンドボックス(Sandbox):外部からの影響を隔離する安全実行環境。
周辺ツール・開発支援
- FFI(Foreign Function Interface):他言語の関数やライブラリを呼び出す仕組み。
- デバッガ(Debugger):プログラム実行を追跡・制御し不具合調査。
- プロファイラ(Profiler):実行中の性能測定。
- カバレッジ(Coverage):テストで実行されたコード割合。
- ビルド/パッケージ:ソースから実行ファイルを生成・配布単位にまとめる工程。
- エコシステム(Ecosystem):言語やツール、ライブラリ群の総体。
- パッケージマネージャ(Package Manager):ライブラリの取得・更新・依存管理ツール。
- 依存解決(Dependency Resolution):必要ライブラリやバージョンを解決。
- セムバー(SemVer):Semantic Versioning。互換性ルールを含むバージョン表記法。
- レジストリ設計(Registry Design):パッケージ公開・管理のための仕組み設計。
エディタ・開発体験
- LSPサーバ(Language Server Protocol Server):エディタと連携して補完・定義ジャンプ等を提供。
- 補完(Completion):入力中の候補提案。
- 定義ジャンプ(Go to Definition):識別子の定義元へ移動。
- リント(Lint):静的解析で問題点やスタイル違反を検出。
- エディタ体験(Editor Experience):開発時の操作性や支援機能の総称。
プロジェクト運営・リリース管理
- バージョニング(Versioning):ソフトウェアのバージョン管理。
- RFCプロセス(Request for Comments Process):仕様提案・議論・承認の流れ。
- テストスイート(Test Suite):包括的な動作確認テスト群。
- ガバナンス(Governance):プロジェクト運営体制。
- BDFL型(Benevolent Dictator For Life):特定人物が最終決定権を持つ運営形態。
- 委員会型(Committee Model):複数人の合議制による運営形態。
開発者ツール・その他
- MVP言語(Minimum Viable Product Language):最小限の機能で動く言語試作品。
- バックエンド選択(Backend Selection):コンパイラ出力先(機械語、VM、WASM等)を選ぶ。
- バイトコード出力(Bytecode Output):仮想マシン用の中間コード生成。
- ランタイム最小実装(Minimal Runtime):必要最低限の機能だけを持つ実行環境。
- REPL(Read-Eval-Print Loop):対話型実行環境。
- フォーマッタ(Formatter):コードの自動整形。
- CLIツール(Command Line Interface Tool):コマンドライン操作ツール。
- 単体テスト(Unit Test):機能単位で動作を確認するテスト。