stanford-oval/wikipedia huggingface dataset:
POSIXスレッド
内容

Pthreads はC言語のデータ型、関数、定数を定義している。その実装は pthread.h というヘッダファイルとスレッドライブラリにある。スレッドのスリープは unistd.h の sleep() もしくは time.h の nanosleep() を使用する。
データ型:
pthread_t: スレッドへのハンドル
pthread_attr_t: スレッド属性
pthread_mutex_t: mutex
pthread_mutexattr_t: mutex の属性
pthread_cond_t: 条件変数
pthread_condattr_t: 条件変数の属性
スレッド操作関数（引数は省略）:
pthread_create(): スレッド生成
pthread_exit(): 現在のスレッドを終了
pthread_cancel(): 指定したスレッドの実行をキャンセル
pthread_join(): 現在のスレッドを他のスレッドが終了するまでブロック
pthread_kill(): スレッドへのシグナル送信
pthread_attr_init(): スレッド属性を初期化
pthread_attr_destroy(): スレッド属性の破棄
pthread_attr_getdetachstate(): detachstate属性を取得
pthread_attr_setdetachstate(): datachstate属性（スレッドがjoinできるかどうか）を設定
同期関数: mutex
pthread_mutex_init(): mutexロックの初期化
pthread_mutex_destroy(): mutexロックの破棄
pthread_mutex_lock(): mutexロックの獲得（ブロックあり）
pthread_mutex_trylock(): mutexロックの獲得（ブロックしない）
pthread_mutex_unlock(): mutexロックの解放
pthread_mutex_getprioceiling():
pthread_mutex_setprioceiling():
同期関数: 条件変数
pthread_cond_init(): 条件変数の初期化
pthread_cond_destroy(): 条件変数の破棄
pthread_cond_signal(): 条件変数のシグナル
pthread_cond_broadcast():
pthread_cond_wait(): 条件変数で待つ
pthread_cond_timedwait():
pthread_condattr_init():
pthread_condattr_destroy():
pthread_condattr_getpshared():
pthread_condattr_setpshared():
スレッドローカルデータ:
pthread_key_create(): スレッドローカルデータと関連付けるキーを生成
pthread_key_delete(): キーの破棄
pthread_getspecific(): キーを指定してスレッドローカルデータを検索
pthread_setspecific(): キーとスレッドローカルデータの関連付け
Read/Writeロック
pthread_rwlock_init():
pthread_rwlock_destroy():
pthread_rwlock_rdlock():
pthread_rwlock_wrlock():
pthread_rwlock_tryrdlock():
pthread_rwlock_trywrlock():
pthread_rwlock_unlock():
pthread_rwlockattr_init():
pthread_rwlockattr_destroy():
pthread_rwlockattr_getpshared():
pthread_rwlockattr_setpshared():
ユーティリティ関数:
pthread_equal(): 2つのスレッドIDが等しいかどうかを調べる
pthread_detach(): スレッドにリソースを解放させる
pthread_self(): 自身のスレッドIDを得る
例

C言語で Pthreads を使ったコード例を示す。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

static void *thread_func(void *vptr_args) {
    int i;

    for (i = 0; i < 20; i++) {
        fputs("  b\n", stderr);
        sleep(1);
    }

    return NULL;
}

int main(void) {
    int i;
    pthread_t thread;

    if (pthread_create(&thread, NULL, thread_func, NULL) != 0) {
        return EXIT_FAILURE;
    }

    for (i = 0; i < 20; i++) {
        puts("a");
        sleep(1);
    }

    if (pthread_join(thread, NULL) != 0) {
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}
このプログラムは、'b' を1秒ごとに20回表示する新たなスレッドを生成し、同時にメインスレッドは 'a' を1秒ごとに20回表示する。出力は、2つのスレッドが並行動作することで 'a' と 'b' が入り混じったものになる。
LISPマシン

LISPマシンは、LISPを主要なプログラミング言語として効率的に実行することを目的として設計された汎用のコンピュータである。ある意味では、最初の商用シングルユーザーワークステーションと言うこともできる。それほど数量的に大成功を収めたとはいえないが（1988年までに約7000台が出荷された）、その後よく使われることになる様々な技術を商用化する先駆けとなった。例えば、効率的ガベージコレクション、レーザープリンター、ウィンドウシステム、コンピュータマウス、高解像度ビットマップグラフィックス、CHAOSNet（英語版）などのネットワーキングにおける技術革新などである。1980年代にシンボリックス（3600、3640、XL1200、MacIvoryなど）、LMI（Lisp Machines Incorporated、LMI Lambda）、テキサス・インスツルメンツ（Explorer、MicroExplorer）、ゼロックス（InterLisp-D搭載ワークステーション）といった企業がLISPマシンを製造販売した。オペレーティングシステムは Lisp Machine Lisp（英語版） やInterlisp（ゼロックスの場合）で書かれ、後に一部は Common Lisp で書かれた。
歴史 > 背景

1960年代から1970年代にかけて、人工知能プログラムは当時の基準では非常に多くのプロセッサ時間とメモリ空間を消費するものだった。当時の研究機関で使われていたコンピュータは高価であるために多くのユーザーが共有して使用するのが一般的だった。1960年代から1970年代にかけての集積回路技術の進展はコンピュータのサイズとコストを小さくしていったが、AIプログラムが使用するメモリ量は一般的な当時の研究用コンピュータ（DECのPDP-10）のアドレス空間を越えようとしていた。研究者たちは、巨大な人工知能プログラムを開発し動作させるのに最適化した新しいコンピュータを設計することを検討し始め、LISPプログラミング言語の実行に最適化されたマシンを作った。そのオペレーティングシステムを単純にするために、LISPマシンはシングルユーザー用のマシンとなった。
歴史 > 初期の開発

1973年、MIT AI研究所のプログラマ、リチャード・グリーンブラットとトム・ナイト（英語版）は MIT LISPマシンプロジェクトを立ち上げた。これは、基本的なLISPの機能がハード的に動作するコンピュータを構築するもので、24ビットのタグ付きアーキテクチャを採用していた。また、このマシンはインクリメンタルなガベージコレクションを採用していた。LISPの変数はコンパイル時ではなく実行時に型付けされるので、普通のハードウェアでは2つの変数の加算に通常の5倍の時間がかかる（型チェックと型ごとの分岐のため）。LISPマシンでは通常の加算命令で型チェックを同時に行う。型チェックが失敗した場合、並行して行っていた加算結果を捨て、再計算する。従って、多くの場合、単純な加算だけで済むので高速化される。このようなチェックを並行して行う手法は、配列の境界チェックなどのメモリ管理関連でも行われている。
Symbolics 3600シリーズでは、32ビットワードを36ビットワードに拡張することで型チェックがさらに強化・自動化された。これは後にさらに40ビットワード以上に強化されている（型チェックが関係しない場合、余分なビットは誤り検出訂正に使われた）。追加ビットの一部はデータ型を保持するのに使われ（タグ付きアーキテクチャ）、その他はCDRコーディング（英語版）（リストに要するメモリを約半分にする方式）の実装やガベージコレクションに使われた。さらなる改善として、2つのマイクロコード命令でLISPの関数呼び出しをサポートし、（一部のシンボリックスの実装では）関数呼び出し当たりのコストを20クロックサイクルに削減している。
最初のマシンは CONS（LISPのリスト作成演算子にちなんだ名称）と呼ばれた。CONSはトム・ナイトが修士論文のテーマとしたことから「ナイト・マシン」とも呼ばれた。その後、さらに改良された CADR（LISPの cadr 関数 = CAR + CDR に由来）と呼ばれるバージョンが完成した。アーキテクチャは基本的には同じである。25台の CADR マシンがMIT内外に約5万ドルで販売された。ハッカーの間で人気となり、すぐさま各種ツールが移植されていった（例えば、Emacs は 1975年に ITS から移植された）。1978年にMITで開催されたAI会議で好評を博し、DARPAはその開発に資金提供を開始した。
歴史 > 派生

1979年、ラッセル・ノフツカー（英語版）（AI研究所の管理者、後にシンボリックス社を創業）はLISPマシンが商業的にも将来性があると確信し、グリーンブラットにその技術の商業化の提案書を書かせた。根っからのハッカーであったグリーンブラットにとって商業化はポリシーに反することではあったが、AI研究所の雰囲気をそのまま持ち込んだような会社が作れるのではないかと考え、反対はしなかった。しかし、ノフツカーの考えはそれとは全く違っていた。両者は長時間にわたって話し合ったが、合意には至らなかった。AI研究所のハッカー達の全面的な支援がなければこの事業が成り立たないのは明らかであったため、ノフツカーを選ぶかグリーンブラットを選ぶかはハッカー達自身に任されることになった。
その後の議論により、研究所は2つの派閥に分裂する事態となった。1979年2月、大多数のハッカーはグリーンブラットの自己満足的な企業よりもノフツカーの考える企業の方が将来性があると判断した。グリーンブラットは負けたのである。
ノフツカーの企業シンボリックス社が徐々に形を成し（彼は給料を払っていたが、作業のための建物も設備も無かった。そのため、ハッカー達がMITでシンボリックスのための作業を続ける代わりに、その成果をMIT内部には無償で提供するという約束をしていた）、グリーンブラットが消沈していたころ、CDCのコンサルタントがグリーンブラットを訪ねてきた。CDC は自然言語処理アプリケーションを西海岸のハッカー達と開発しようとしており、それにグリーンブラットのLISPマシンが使えないかとやってきたのであった。ノフツカーと決着のついた話し合いから8ヶ月後のことであった。グリーンブラットはノフツカーに対抗するLISPマシン企業を始めると決めていたが、具体的には何もしていなかった。そのコンサルタント、アレキサンダー・ジェイコブソンはグリーンブラットが会社を興すのを助けることを決め、経営計画などをまとめた。この新たな企業は LMI（Lisp Machine, Inc.）と名づけられ、ジェイコブソン経由で CDC の資本で設立された。
このころ、シンボリックス社が事業を開始した。ノフツカーがグリーンブラットに対して一年間の猶予を与えると約束したことと、ベンチャーキャピタルからの資金集めが難航したための遅れであった。しかし、AI研究所のハッカー達のうち3、4人はグリーンブラットについたものの、他の14人のハッカーがシンボリックスで働くことになったことで、シンボリックスにとっては有利となった。ただし、リチャード・ストールマンとマービン・ミンスキーの2人はどちらにも与しなかった。ただし、ストールマンはAI研究所を中心としたハッカー文化を衰退させたとしてシンボリックスを非難している。1982年から1983年末までの2年間、ストールマンはシンボリックスのプログラマ達の成果のクローンを作る作業を行い、研究所のコンピュータ群においてシンボリックスが独占状態となるのを防ごうとした。
シンボリックスは1980年から1981年にかけて CADR を LM-2 として販売開始し、LMI も LMI-CADR として販売開始した。シンボリックスは新たに開発していた3600ファミリをなるべく早く出荷し、LM-2 の販売を早々にやめる予定だったが、3600の開発は遅れに遅れ、結局7万ドルの LM-2 は約100台出荷された。両社は CADR ベースの第二世代の製品 Symbolics 3600 と LMI-LAMBDA を開発した。約1年後にリリースされた 3600 は、CADR のワード長を 36ビットに拡張して、アドレス空間を 28ビットとし、CADR ではマイクロコードで実装されていた機能の一部をハードウェアで実装し高速化したものであった。さらにその1年後（1983年）に登場した LMI-LAMBDA はマイクロコードレベルで CADR と互換性があるが、ハードウェアには差異がある。テキサス・インスツルメンツ(TI)社は、LMI-LAMBDA のライセンス供与を受け、互換マシン TI Explorer を開発した。LMI-LAMBDA と TI Explorer の一部はLISPマシンとUNIXマシンを1つにまとめたデュアルシステムとなっていた。TIはExplorer用にLISPマシンCPUの32ビットマイクロプロセッサも開発した。このチップはAppleの Macintosh II に接続できるNuBusボード型の MicroExplorer にも使われた。
シンボリックス社は 3600 ファミリとそのオペレーティングシステム Genera を開発し続け、シンボリックスのCPUをワンチップ化した Ivory も開発した。1987年には Ivory を使ったいくつかのマシンも開発された。例えば、SunのワークステーションやMac向けの拡張ボード、スタンドアロンのワークステーション、そして組み込みシステムなどにまで利用された。LMI社は CADR アーキテクチャをやめて新たに K-Machine を開発したが、リリースする前に倒産した。倒産直前のLMIでは、巨大仮想空間を複数マシン間で共有する分散システムを検討していた。
これらのマシンは様々な、コンパイルされたLISPプログラムに必要なプリミティブ的な操作をハードウェアでサポートしており、データ型チェック、CDRコーディング（リスト型のデータ構造を配列的に詰めたもの）、並列and・or並行ガベージコレクションのハードウェアサポートなどがある。これにより、大きなLISPプログラムを非常に効率的に動作させることができた。シンボリックス社のマシンは商用のスーパーミニコンピュータ（VAXなど）と競合したが、人工知能研究以外の用途に使われることはほとんどなかった。一部の例外的な用途として、シンボリックスのLISPマシンはコンピュータグラフィックスのモデリングやアニメーションにおけるアルゴリズム研究に用いられた例もある。
MITから派生したLISPマシンは、MITのMacLispを先祖とする Lisp Machine Lisp（英語版） という方言を主要言語としていた。オペレーティングシステムもLISPで書かれていて、オブジェクト指向による拡張(Flavors)も使われていた。後にLISPマシンは Common Lisp もサポートするようになった。
歴史 > ゼロックスのLISPマシン

BBNは、独自のLISPマシン Jericho を開発した。InterLispが動作するマシンであったが、市場には出されなかった。それに失望したAIグループのメンバーは同社を辞め、その多くがゼロックスのパロアルト研究所に雇われることになった。従って、ゼロックス社のパロアルト研究所が開発した Interlisp（後にCommon Lispも稼動）やSmalltalkのような言語が動作するよう設計されたマシンは、グリーンブラットらのMITでの開発とは独立している。しかし、ゼロックスは市場参入の時期を誤り、LMI やシンボリックスの後塵を拝することになった。Xerox 1100（ドルフィン）、Xerox 1132（ドラド）、Xerox 1108（ダンデライオン）、Xerox 1109（ダンデタイガー）、Xerox 6085（デイブレイク）などの機種がある。ゼロックスのLISPマシンのオペレーティングシステムは仮想マシンに移植され、Medleyという名前でいくつかのプラットフォーム上で動作した。ゼロックスのLISPマシンは先進的な開発環境で知られており、Altoから受け継がれたGUIとNoteCards（初期のハイパーテキストアプリケーション）などが有名である。ゼロックスのマシンは商業的には失敗だったが、そのグラフィカルユーザー環境や一部の概念は後にアップルのMacintosh等さまざまなコンピュータに間接的に影響を与えた。
ゼロックスはRISCベースのLISPマシン Xerox Common Lisp Processor を試作し、1987年に市販することを計画していたが、実現しなかった。
歴史 > Integrated Inference Machines

1980年代中ごろ、Integrated Inference Machines (IIM) がLISPマシンの試作機 Inferstar を開発している。
歴史 > アメリカ以外でのLISPマシン開発

1984年から1985年にかけて、イギリスの Racal-Norsk はノルウェーの Norsk Data のミニコンのマイクロプログラムをLISPマシン化して CADR 用のソフトウェア Knowledge Processing System (KPS) を動作させることを試みている。
フランスでは2つのLISPマシン・プロジェクト、M3LとMAIAが実施されている。
ドイツではシーメンスがRISCベースのLISP用コプロセッサCOLIBRIを開発している。
歴史 > 日本でのLISPマシン開発

日本では、1979年に完動した神戸大のTAKITAC-7（FAST LISP）をはじめ、理化学研究所のFLATS、大阪大学のELVISなどが試作された。富士通のFACOM α（メインフレームのバックエンドとして動作。1984年発表）、NTT電気通信研究所のELIS（TAO/ELIS）、東芝のAIプロセッサ(AIP)、日本電気のLIMEのようにLISPマシン市場への参入を試みた例もある。青山学院大学で開発されたALPS/1は、8080の特定の命令実行を横取りし、ハードウェアでデータを処理させる、という仕組みであった。
情報処理学会のコンピュータ博物館サイトの「神戸大LISPマシン」の解説の最後に「TAKITAC-7のアーキテクチャは後のFACOM-αとNTTのELISが継承した．」とあるが、いずれもそのまま引き継いでいるわけではない。FACOM αは同社のメインフレームないしミニコンのバックエンドとして動作するものである。またELISについては関係者が執筆した記事によれば、設計者は（神戸大LISPマシンを）32ビットにしただけと言ったりもするが、VLSIチップにすることを前提にそれに適したアーキテクチャとして設計されており。、そういった点は独自性が強い。
歴史 > その後・現在

RISCワークステーションの性能対価格比の向上により、これらLISPマシンの優位は消え失せ、ミニコンピュータなどともろともに、高水準言語寄りのアーキテクチャは基本的には「過去の遺物」とみなされるようになった。ワークステーションの後にはパーソナルコンピュータが続き、ワークステーションのメーカーも一掃された。現代では、一般のデスクトップPCが特別なハードウェア無しでLISPマシンの何倍も高速にLISPを実行できるようになった。
1990年代初めにはLISPマシンを製造していた企業は商売が成り立たなくなった。ゼロックス以外ではシンボリックスが今も残っている唯一の企業で、LISPマシン環境 Open Genera と 数式処理システム Macsyma を販売している。
各種LISPマシンのオープンソースのエミュレータを作る試みがいくつかなされている。
CADRのエミュレーション
シンボリックスのLISPマシンのエミュレーション
E3プロジェクト（TI Explorer II のエミュレーション）
Meroko（TI Explorer I のエミュレーション）
Nevermore（TI Explorer I のエミュレーション）
2005年10月3日、MITはCADRのソースコードをオープンソースとして公開した。
BitsaversのPDF文書アーカイブには、シンボリックスのLISPマシン、TI ExplorerとMicroExplorer、ゼロックスのInterLisp-Dマシンについて、各種文書のPDF版が保管されている。
歴史 > その他の高水準言語マシン

日本の第五世代コンピュータ計画では、LISPよりもさらに高水準の、論理推論の操作をハードウェア化し、Prologなどの論理プログラミング言語の高速処理を目的としたマシン（逐次推論型マシン PSI、並列推論型マシン PIM）が開発された。また、Prologをより直接的に実装することを意図したプロセッサやコプロセッサが1980年代後半から1990年代前半にかけていくつか開発されている。例えばカリフォルニア大学バークレー校の VLSI-PLM、その後継のPLUM、関連するマイクロコード実装などがある。設計レベルに留まり、実際にハードウェアが製作されなかった例もいくつかある。LISPと同様、Prologの基本計算モデルは標準的な命令型設計とは大きく異なるため、計算機科学者や電気工学者は根底にある計算モデルのエミュレートによって生じるボトルネックをなんとか解消しようとしてきた。
ニクラウス・ヴィルトのLilithプロジェクトでは、Modula-2言語を指向した独自CPUを採用している。
近年の例には、1990年代終盤に最初に構想されたサン・マイクロシステムズによるものを代表とする、Javaに最適化されたJavaプロセッサ（en:Java processor）がある。
エリクソンはErlangに最適化したプロセッサ ECOMP を開発したが、製品化はしていない。
歴史 > 用途

LISPマシンは主に人工知能アプリケーションの領域で使われたが、コンピュータグラフィックス、医用画像処理などの分野でも使われた。
1980年代の主要な商用エキスパートシステムはLISPマシンに移植されている。インテリコープの Knowledge Engineering Environment (KEE)、The Carnegie Group Inc. の Knowledge Craft、Inference Corporation の ART (Automated Reasoning Tool) などである。
技術概要

もともとLISPマシンはLISPによるソフトウェア開発のための個人用ワークステーションとして設計された。1人の人間が使用するようになっていて、マルチユーザーモードはない。大きなモノクロのビットマップディスプレイ、キーボード、マウス、ネットワークアダプター、ハードディスク、1MB以上のRAM、シリアルインタフェース、拡張カードスロットなどを備えている。カラーグラフィックス、磁気テープ装置、レーザープリンターなどはオプションである。
プロセッサはLISPを直接実行するわけではなく、コンパイルされたLISPに最適化された命令セットを持つスタックマシンになっている。初期のLISPマシンはマイクロコードで命令セットを実装していた。いくつかの演算で、型チェックとディスパッチがハードウェアで実行時に行われる。例えば、加算命令は1つだけで、各種数値型（整数、浮動小数点数、有理数、複素数）の加算を自動的に行う。そのため、LISPコードをコンパイルしたものは非常にコンパクトになる。
次の例はリスト (list) の要素それぞれに対して述語 (predicate) を作用させ、「真」を返す要素数を数える関数である。
(defun example-count (predicate list)
  (let ((count 0))
    (dolist (i list count)
      (when (funcall predicate i)
        (incf count)))))
この関数を（シンボリックスの Ivory マイクロプロセッサ向けに）コンパイルした機械語コードを逆アセンブルしたものを以下に示す。
Command: (disassemble (compile #'example-count))

  0  ENTRY: 2 REQUIRED, 0 OPTIONAL      ;Creating PREDICATE and LIST
  2  PUSH 0                             ;Creating COUNT
  3  PUSH FP|3                          ;LIST 
  4  PUSH NIL                           ;Creating I
  5  BRANCH 15
  6  SET-TO-CDR-PUSH-CAR FP|5
  7  SET-SP-TO-ADDRESS-SAVE-TOS SP|-1
 10  START-CALL FP|2                    ;PREDICATE 
 11  PUSH FP|6                          ;I 
 12  FINISH-CALL-1-VALUE
 13  BRANCH-FALSE 15
 14  INCREMENT FP|4                     ;COUNT 
 15  ENDP FP|5
 16  BRANCH-FALSE 6
 17  SET-SP-TO-ADDRESS SP|-2
 20  RETURN-SINGLE-STACK
オペレーティングシステムは仮想記憶によって大きなアドレス空間を提供している。OSのメモリ管理機能の一部としてガベージコレクションも行う。全てのコードは単一のアドレス空間を共有している。メモリに格納されているあらゆるデータオブジェクトにはタグが付属しており、実行時にデータ型を判別できる。単一アドレス空間内に複数の実行スレッドがあり、それらを「プロセス」と呼ぶ。
全OSソフトウェアはLISPで書かれている。ゼロックスはInterLisp、シンボリックスとLMIとTIはMaclispから派生した Lisp Machine Lisp を使っている。Common Lisp が登場するとLISPマシンでも Common Lisp をサポートするようになり、Common Lisp でソフトウェアが書かれるようになった。
後期のLISPマシン（TI MicroExplorer、Symbolics MacIvory、Symbolics UX400/1200 など）はワークステーションとしてではなく、何らかのホストコンピュータ（Macintosh II や Sun-3/4 など）に組み込むカードの形で製品化された。
Symbolics XL1200 などのLISPマシンは特別なグラフィックスカードを備え、グラフィックス機能が強化されていた。そのようなLISPマシンは医用画像処理、3次元アニメーション、CAD などに使われた。
MITに展示されている初期のLISPマシン
リズ山崎

| りず やまざき リズ 山崎 |
| --- | --- |
生誕:  1960年2月18日（64歳）  日本神奈川県横浜市
国籍:   日本
職業:  作家、スピリチュアルカウンセラー
公式サイト:  https://lyzzyamazaki.com
テンプレートを表示
リズ 山崎（リズ やまざき、1960年2月18日 - ）は、日本の著作家、スピリチュアルカウンセラー。
神奈川県横浜市出身。
概要

ロサンゼルスで14年間ピアノ弾き語りとして過ごし、自身の自己探求の経験からスピリチュアル&心理学の研究を開始、チャネラー&心理セラピストとなる。
これまでに刊行した著書41冊（累計70万部）は自己啓発&女性エッセイの分野で多くの女性たちに支持され米国・ヨーロッパ・台湾・韓国など海外でも翻訳されている。
また、株式会社リズ山崎オフィス代表取締役も務めている。
経歴

1981年　音楽を勉強するため渡米、北アメリカ大陸横断一人旅を果たす。グローブ音楽学院卒業後、クラブでの弾き語り、バンド活動、ヴォーカル講師、日系TVでのCMソングなど音楽活動を行う。
1993年　日本で感情を解放するためのセルフセラピーCD「Dream Vision」をリリースする。
1994年　CDリリース直後の父急逝を機に一時日本に活動拠点を移し「サラージ心理アカデミー」を開設する。
1996年 サラージ・メソッドを心理学的方法論にまとめ上げることを目的に大学（明星大学教育学部心理学科通信課）に入学する。
2006年2月　リズ山崎公式ブログ「ハッピーモーメント」開始。
2011年5月　東日本大震災支援のためブログにて募った募金にて宮城県南三陸町の人たちのために喪服をはじめ衣類や物資を届けに現地を訪れる。
2013年10月　脳動脈瘤の手術・入院を経験。2021年2月　国家資格「公認心理師」資格を取得する。
ツングース祖語

ツングース祖語（ツングースそご）あるいはツングース＝満洲祖語（ツングース＝まんしゅうそご、英: Proto-Tungusic, Proto-Tungus(o)-Manchu, Proto-Manchu-Tungus(ic)、露: Пратунгусоманьчжурский、簡: 通古斯祖语）は、ツングース語族の祖語。かつては「アルタイ語族」に属するとされた。
音韻体系 > 通説上の体系

ツングース祖語に一般に再構される体系はヨハネス・ベンツィング（英語版） の (1955a) によっている。
音韻体系 > 通説上の体系 > 母音体系

弁別的な母音の長短の対立が再構される。母音調和の節にて後述するが、8母音体系が一般的である。しかし、母音調和を盛り込むことによって *ä をなくした7母音体系を再構することができると指摘されている（この体系では *ï は *e と書かれる）。音価には諸説ある。音価の推定例を挙げる。
| 母音 | ツィンツィウス(1949b) | 池上二良(1989) | コほか(2014) |
| --- | --- | --- | --- |
*i: [i]
| *ï | [e] | [ɪ] | [ɪ] |
| *u | [u] | [ʊ] | [ʊ] |
| *ü | [uǐ] | [u] | [u] |
| *o | [o] | [o] | [ɔ] |
| *ö | [ʉ] | [ɵ] | [o] |
*a: [a]
*ä: [ə]
音韻体系 > 通説上の体系 > 母音調和

一般に、ツングース諸語における母音調和は多様であるため、祖語の体系を再構するのは困難であるとされる。
ツィンツィウス (1949b) とベンツィング (1955a)、及びスタロスティンほか (2003) の表記・類音素（英語版）の対照表を母音調和に基づいて示すと以下のようになる。ベンツィングは音声的解釈を示していないが、アンドリュー・ジョセフとジョン・ホイットマンによる舌根調和説による推定音価を丸括弧内に書く。
| ツィンツィウス>  | ツィンツィウス>  | ベンツィング> 陽母音 | ベンツィング> 陰母音 | スタロスティンほか>  | スタロスティンほか>  |
| --- | --- | --- | --- | --- | --- |
| *и [i] | *е [e] | *i ([i]) | *ï ([ɪ]) | *i | *i |
| *уи[uǐ] | *у [u] | *ü ([u]) | *u ([ʊ]) | *ü, *u | *ü, *u |
| *у͘ [ʉ] | *о [o] | *ö ([o]) | *o ([ɔ]) | *u | *o |
| *э [ə] | *а [a] | *ä ([ə]) | *a ([a]) | *e | *a |
上に示したように、スタロスティンほか (2003) はツングース祖語の *i: *ï, *u: *ü の対立を非高母音との語根内での共存に起因する二次的なものであると再解釈し、ツングース祖語の体系を簡略化した。一方で、高母音のみで構成される語根は、スタロスティンほか自らが再構した語根においてすら、予測される写映形をほとんどもしくは全く示すことができないため、この6母音説は支持されない。
音韻体系 > 通説上の体系 > 子音体系

以下の子音が再構される。ヴェラ・ツィンツィウス（ロシア語版）(1949b) は口蓋化子音 *ḿ, *d́, *ś をも再構したが、体系の簡略化のため多くのツングース語学者は *mi-, *di-, *si- というiを含んだ二重母音（英: i-diphthongs）をこの代わりに再構する。
|  | 唇 | 歯茎 | 硬口蓋 | 軟口蓋 |
| --- | --- | --- | --- | --- |
| 無声破裂音 | *p | *t |  | *k |
| 有声破裂音 | *b | *d |  | *g |
| 無声破擦音 |  |  | *č |  |
| 有声破擦音 |  |  | *ǯ |  |
| 摩擦音 |  | *s |  | *x |
| 鼻音 | *m | *n | *ń | *ŋ |
| 流音 |  | *r, *l |  |  |
| 渡り音 | *w |  | *j |  |
音韻体系 > セルゲイ・スタロスティンほか(2003)の体系

「アルタイ祖語」研究の成果として 2003 年に出版された『An Etymological Dictionary of the Altaic Languages』におけるセルゲイ・スタロスティンらによるツングース祖語の音韻体系は、同書における他の「アルタイ諸語」の諸言語の祖語と同様、個別の語族の研究者が再構する一般的な体系とは大きく異なったものになって（おり、批判されて）いる。
音韻体系 > セルゲイ・スタロスティンほか(2003)の体系 > 母音

全ての母音は長母音を持つ。*üは*uiまたは*iuのような二重母音であった可能性があるが、下の他に二重母音*iaが再建される。
|  | 前舌 |  | 後舌 |
| --- | --- | --- | --- |
| 狭 | *i | *ü | *u |
| 中 | *e |  | *o |
| 広 |  |  | *a |
*oをのぞく全ての母音は第一音節及びそれに続く音節に出現しうる。かつて「アルタイ語族」に属するとされたモンゴル語族、テュルク語族の祖語であるモンゴル祖語やテュルク祖語と異なり、ツングース祖語に母音調和は存在しないが、以下のようにいくつかの、音節が隣接する母音に関する制約が存在する。※全てのツングース語族の娘言語は、恐らくモンゴル語族の影響によって母音調和を持つ。
後舌母音である*o, *aは前舌母音である*eと結びつくことはない。
*uは*oに続くことができない。
*üは*iに続くことができない。
音韻体系 > セルゲイ・スタロスティンほか(2003)の体系 > 子音

*r, *jは語腹にしか出現しない。全てのツングース祖語の子孫言語は軟口蓋音と口蓋垂音を弁別するが、これはツングース祖語の後舌母音に隣接する位置の子音が口蓋垂音に変化したためである。
|  | 両唇音 | 歯茎音 | 硬口蓋音 | 軟口蓋音 |
| --- | --- | --- | --- | --- |
| 無声破裂音 | *p | *t | *č | *k |
| 有声破裂音 | *b | *d | *ǯ | *g |
| 鼻音 | *m | *n | *ń | *ŋ |
| 摩擦音 |  | *s | *š | *x |
| 流音 |  | *r, *l | *j |  |
母音対応 > 短母音

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ツングース祖語 | ツングース祖語 | *i | *ï | *ä | *a | *ü | *u | *ö | *o |
| エウェン語群 | エウェン語 | i | ɪ | ə | a | i/u | ʊ | u/ɵ [o] | o |
| エウェン語群 | エウェンキー語 | i | i | ə | a | i | u | u | o |
| エウェン語群 | ソロン語 | i | i | ə | a | i | u | ʉ | o |
| エウェン語群 | オロチョン語 | i | ɪ | ə | a | i/u | ʊ | u/ɵ | o |
| エウェン語群 | ネギダール語 | i | ɪ | ə | a | i | u | o | o |
| エウェン語群 | キリ語 |  |  |  |  |  |  |  |  |
| ウデヘ語群 | ウデヘ語 | i | i | ə | a | i/u | u | u | o |
| ウデヘ語群 | オロチ語 | i | i | ə | a | i/u | ʊ | u | o |
| ナナイ語群 | ウリチ語 | i | ɪ | ə | a | u | ʊ | u | o |
| ナナイ語群 | ナナイ語 | i | ɪ | ə | a | u | o | u | o |
| ナナイ語群 | ウイルタ語 | i | ɪ | ə | a | u | ʊ | u/ɵ [o] | o |
| 女真語群 | 満洲語 | i | i | ə | a | u | ʊ/u | u(~ə) | o |
| 女真語群 | シベ語 |  |  |  |  |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |  |  |  |  |
第一音節以外の対応も概ねこれとかわらないが、エウェン語・エウェンキー語では以下のようになっている。
| ツングース祖語 | エウェン語 | エウェンキー語 |
| --- | --- | --- |
*a: /a/
| *o | /a/ | /o/ |
| *u | /a/ | /u/ |
| *ï | /a/ | /i/ |
*ä: /ə/
| *ö | /ə/ | /u/ |
| *ü | /ə/ | /i/ |
| *i | /ə/ | /i/ |
*C{ɪ, i}: /C∅/ /＿#
| *CV | /C∅/ /＿# | 第一音節に同じ |
母音対応 > 長母音

エウェン語・エウェンキー語・ソロン語・ナーナイ語・ウイルタ語に保存されている。ただし、ウイルタ語の第二音節以下の長母音は短母音に対応している。
母音対応 > 長母音 > i の折れ

オロチ語・ウリチ語・ウイルタ語以外では *i, *ɪ が第二音節の *a に同化し、*ja に変化した。これを i の折れと呼ぶ。
| ツングース祖語 | 大部分の子孫言語 | 一部の方言 | 一部の方言 | ソロン語 |
| --- | --- | --- | --- | --- |
| *i | > *ja /#＿Ca | > /æ/ | > /ē/ | ?> /ī/ |
| *ɪ | > *ja /#＿Ca | > /æ/ | > /ē/ | ?> /ī/ |
子音対応 > 単子音 > 阻害音

音素配列論上の成約によって、*x 以外の阻害音はすべて語末以外に出現できる。*x は語頭にしか出現できない。
| 出現位置> ツングース祖語 | 出現位置> ツングース祖語 | 非語末> *p | 非語末> *b | 非語末> *t | 非語末> *d | 非語末> *k | 非語末> *g | 非語末> *č | 非語末> *ǯ | 非語末> *s | 語頭> *x |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| エウェン語群 | エウェン語 | x /#＿ w~∅ /V_V | b /＿# w /V＿V | t | d | k | g /#＿ g~w~∅ /V＿V | č | ǯ | x /#＿ s /V＿V | ∅ |
| エウェン語群 | エウェンキー語 | x /#＿ w /V＿V | b /#＿ g~w /V＿V | t | d | k | g | č | ǯ | s | ∅ |
| エウェン語群 | ソロン語 | ∅ /#＿ w~∅ /V＿V | b /#＿ g~w/V＿V | t | d | x /#＿ k~x/V＿V | g | s~c | ǯ | s(~š) | ∅ |
| エウェン語群 | オロチョン語 |  |  |  |  |  |  |  |  |  |  |
| エウェン語群 | ネギダル語 | x /#＿ w /¬#＿ | b /#＿  w /V＿V | t | d | k /#＿ k~x /V＿V | g | č | ǯ | s | ∅ |
| エウェン語群 | キリ語 |  |  |  |  |  |  |  |  |  |  |
| ウディヘ語群 | ウディヘ語 | x /#＿ s /#＿i w /V＿V | b /#＿  ∅ /V＿V | t | d | k ’~g /V＿V | g /#＿ ∅ /V＿V | č /#＿ s /V＿V | ǯ | s /#＿ h /V＿V | ∅ |
| ウディヘ語群 | オロチ語 | x /#＿ w~∅ /V＿V | b /#＿  w~∅ /V＿V | t | d | k /#＿ k /V＿V | g /#＿ w~∅ /V＿V | č | ǯ | s | ∅ |
| ナーナイ語群 | ウリチ語 | p | b /#＿  w~∅ /V＿V | t | d | k /#＿ k~∅ /V＿V | g /#＿  w~∅ /V＿V | č | ǯ | s | x s /＿{i, ɪ} |
| ナーナイ語群 | ナーナイ語 | p | b /#＿  ∅ /V＿V | t č /＿i | d ǯ /＿i | k k~∅ /V＿V | g ∅ /V＿V | č | ǯ | s | x s /＿i |
| ナーナイ語群 | ウイルタ語 | p | b /#＿  g~∅ /V＿V | t č /＿i | d ǯ /＿i | k k~g /V＿V | g g~∅ /V＿V | t č /＿i | d ǯ /＿i | s | x s /＿i |
| 女真語群 | 満洲語 | f | b | t č /＿i | d ǯ /＿i | h~k | g w~∅ /V＿V | š~s(~č?) | ǯ | s | ∅ |
| 女真語群 | シベ語 |  |  |  |  |  |  |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |  |  |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |  |  |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |  |  |  |  |  |  |
子音対応 > 単子音 > 共鳴音

音素配列論上の成約によって、*r は語腹（語中＋語末のこと）にしか出現できない。また、*ŋ は単独では語頭のみに出現可能で、*n, *l は全位置に出現する。
| 出現位置> ツングース祖語 | 出現位置> ツングース祖語 | 非語末> *m | 全位置> *n | *ń | 語頭> *ŋ | 全位置> *l | 語腹> *r | 非語末> *w | 非語末> *j |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| エウェン語群 | エウェン語 | m | n |  | ŋ | n /#＿ l /¬#＿ | r | m | ɲ /#＿ j /V＿V |
| エウェン語群 | エウェンキー語 | m | n |  | ŋ | l | r | w | j |
| エウェン語群 | ソロン語 | m | n /¬＿# Ṽ /＿# |  | n | l | r | w | j |
| エウェン語群 | オロチョン語 |  |  |  |  |  |  |  |  |
| エウェン語群 | ネギダル語 | m | n |  | ŋ | l | j /V＿V ∅ /＿# | w | j |
| エウェン語群 | キリ語 |  |  |  |  |  |  |  |  |
| ウディヘ語群 | ウディヘ語 | m | n /¬＿# ∅ /＿# |  | ŋ | l /¬＿# ∅ /＿# | ∅ | w | j |
| ウディヘ語群 | オロチ語 | m | n /¬＿# n(~∅)/＿# |  | ŋ | l /¬＿# ∅ /＿# | ∅~j /V＿V ∅ /＿# | w | j |
| ナーナイ語群 | ウリチ語 | m | n |  | ŋ | l /¬＿# l{i, ɪ}/_# | r /V＿V l(ɪ)/＿# | w | j |
| ナーナイ語群 | ナーナイ語 | m | n |  | ŋ~n | l | r | w | j |
| ナーナイ語群 | ウイルタ語 | m | n /¬＿# n~∅ /＿# |  | ŋ | l | r /V＿V ∅ /＿# | w | j |
| 女真語群 | 満洲語 | m | n |  | g~∅ | l /¬＿# ∅ /＿# | r /V＿V ∅ /＿# | w | j |
| 女真語群 | シベ語 |  |  |  |  |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |  |  |  |  |
子音対応 > 子音連結

ツングース祖語の子音連結は語中にしか出現しない。あまりにも数が多く、一つの表にすると閲覧に支障をきたすので、本節では以下の包括記号で子音連結を分類する。概ね一般的なものを用いるが、包括記号は恣意的なものであり、ここに示した包括記号が実際にツングース語学で使われているとは限らない。
| 包括記号 | 便宜的な意味 | 音素 |
| --- | --- | --- |
| P | 唇音 | p, b, m |
| T | 舌端音 | s, t, d |
| K | 舌背音 | g, k |
| L | 流音 | l, r |
| C | 子音 | 全子音音素 |
対応表をみるとわかるが、多くの子孫言語で共有されている変化を抽象的に示すと以下のようになる。
| ツングース祖語 | ツングース祖語 | *PK/*KP |
| --- | --- | --- |
| エウェン語群 | エウェン語 | *PK |
| エウェン語群 | エウェンキー語 | *PK |
| エウェン語群 | ソロン語 | *PK |
| エウェン語群 | キリ語 | *PK |
| エウェン語群 | ネギダル語 | *PK > KK |
| ウディヘ語群 | オロチ語 | *KP > PP |
| ウディヘ語群 | ウディヘ語 | *KP |
| ナナイ語群 | ウリチ語 | *KP |
| ナナイ語群 | ナーナイ語 | *KP |
| ナナイ語群 | ウイルタ語 | *KP |
| 女真語群 | 満洲語 |  |
子音対応 > 子音連結 > *KT

| ツングース祖語 | ツングース祖語 | *ks | *kt | *gd | *ŋt | *ŋd |
| --- | --- | --- | --- | --- | --- | --- |
| エウェン語群 | エウェン語 | s | t | gd~d | nt |  |
| エウェン語群 | エウェンキー語 | ks | kt | gd | ŋt | ŋn |
| エウェン語群 | ソロン語 | kč~tč | kt~tt | gd~dd | nt | nd |
| エウェン語群 | オロチョン語 |  |  |  |  |  |
| エウェン語群 | ネギダル語 | ks~s | kt | gd | ŋt | ŋn |
| エウェン語群 | キリ語 |  |  |  |  |  |
| ウディヘ語群 | ウディヘ語 | k~h | kt | gd | ŋt | ŋd |
| ウディヘ語群 | オロチ語 | ks | kt | gd | ŋt | ŋn |
| ナナイ語群 | ウリチ語 | ks | kt | gd | ŋt | ŋd |
| ナナイ語群 | ナーナイ語 | ks | kt | gd gǯ /＿i | ŋt | ŋd |
| ナナイ語群 | ウイルタ語 | ks~sk | kt | gd gǯ /＿i | kt | ŋd |
| 女真語群 | 満洲語 |  |  | kd |  | nd |
| 女真語群 | シベ語 |  |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |  |
子音対応 > 子音連結 > *PC

*PK のような子音連結は *KP と再構できる可能性のほかにも、*PK, *KP の両者が存在したが、どちらか一方に合流したという可能性もある。（例：*mk ではなく *ŋp、あるいは *mk のみならず *ŋp も）
| ツングース祖語 | ツングース祖語 | *bd | *pk | *bg | *mk | *mg | *mŋ | *md | *ms |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| エウェン語群 | エウェン語 | bd | pk | bg | mk | ｍŋ | mŋ |  | mr |
| エウェン語群 | エウェンキー語 | wd | pk | wg | mk | ｍŋ | mŋ | mn | mn |
| エウェン語群 | ソロン語 |  | kk | wg~gg | ŋk | mm | mm |  | nd |
| エウェン語群 | オロチョン語 |  |  |  |  |  |  |  |  |
| エウェン語群 | ネギダル語 | bd | pk | bg | mk | ｍŋ~mm | mŋ | mn | mn |
| エウェン語群 | キリ語 |  |  |  |  |  |  |  |  |
| ウディヘ語群 | ウディヘ語 | bd | kp | gb |  | ŋm | ŋm | mn | mVh |
| ウディヘ語群 | オロチ語 | bd | pp | gb~bb | mp | mm | mm | mn | ms |
| ナーナイ語群 | ウリチ語 | bd | kp | gb | ŋb | ŋb | ŋm | md | ms |
| ナーナイ語群 | ナーナイ語 | bd | kp | gb | ŋb | ŋb | ŋm | md |  |
| ナーナイ語群 | ウイルタ語 | bd | kp | gb | kp | ŋb | ŋm | md | ps |
| 女真語群 | 満洲語 | bd | k |  | ngg | ngg | ngg | md |  |
| 女真語群 | シベ語 |  |  |  |  |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |  |  |  |  |
子音対応 > 子音連結 > *nC

| ツングース祖語 | ツングース祖語 | *nd | *ns | *ng | *nŋ |
| --- | --- | --- | --- | --- | --- |
| エウェン語群 | エウェン語 | n | nr | nŋ | nŋ |
| エウェン語群 | エウェンキー語 | n | nn | nŋ | nŋ |
| エウェン語群 | ソロン語 | n | nd |  | ŋ |
| エウェン語群 | オロチョン語 |  |  |  |  |
| エウェン語群 | ネギダル語 | n | n | nŋ~ŋn | ɲŋ~ŋɲ~nɲ~ɲɲ~ɲ |
| エウェン語群 | キリ語 |  |  |  |  |
| ウディヘ語群 | ウディヘ語 | n | h |  | ŋ |
| ウディヘ語群 | オロチ語 | n | s | ŋ | ŋ |
| ナーナイ語群 | ウリチ語 | nd | nt | ŋǯ | ɲ |
| ナーナイ語群 | ナーナイ語 | nd | nt | ŋg | ŋ |
| ナーナイ語群 | ウイルタ語 | nd | tt | nd nǯ /＿i | n |
| 女真語群 | 満洲語 |  |  | nǯ | ngg |
| 女真語群 | シベ語 |  |  |  |  |
| 女真語群 | 恰喀拉語 |  |  |  |  |
| 女真語群 | 巴拉語 |  |  |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |  |  |
子音対応 > 子音連結 > *ńK

池上二良 (1989) は *jnK を *ńK の代わりに再構している。
| ツングース祖語 | ツングース祖語 | *ńŋ | *ńg |
| --- | --- | --- | --- |
| エウェン語群 | エウェン語 | nŋ | nŋ |
| エウェン語群 | エウェンキー語 | nŋ | nŋ |
| エウェン語群 | ソロン語 | ɲ | ŋ |
| エウェン語群 | オロチョン語 |  |  |
| エウェン語群 | ネギダル語 | ɲŋ | ŋɲ~ɲŋ |
| エウェン語群 | キリ語 |  |  |
| ウディヘ語群 | ウディヘ語 | ŋ | ŋ |
| ウディヘ語群 | オロチ語 | ŋŋ | ŋ |
| ナーナイ語群 | ウリチ語 | ɲ | ɲǯ |
| ナーナイ語群 | ナーナイ語 | jŋ | jŋg |
| ナーナイ語群 | ウイルタ語 | n | nd |
| 女真語群 | 満洲語 | niy | nǯ |
| 女真語群 | シベ語 |  |  |
| 女真語群 | 恰喀拉語 |  |  |
| 女真語群 | 巴拉語 |  |  |
| 女真語群 | 阿勒楚喀語 |  |  |