ATM は何のプログラミング言語で作られているの?

こんにちは、阿久梨絵です。
街中の ATM
お金を引き出したり、振り込んだり、残高を確認したり…。
毎日のように使うのに、ふと考えると不思議じゃありませんか。

ATM って、何のプログラミング言語で動いているの?
スマホアプリみたいに JavaScript? それとも Python?
銀行って最新技術を使ってるの?

実はこの疑問、
銀行システムの歴史”と“安全性”の話が深く関わっていて、
とても奥が深いんです。

この記事では、
ATM がどんな言語で作られているのか
なぜその言語が選ばれているのかを、初心者にもわかりやすく解説します。

結論:ATM の多くは COBOL(コボル) で動いている

そして OS は 専用の組み込み OSWindows Embedded が多い

ATM の世界は、
スマホアプリや Web サービスとはまったく違う文化で動いている。

COBOL(コボル)
C / C++
Java(銀行によっては採用)
専用の組み込み言語

こうした“堅牢で歴史のある言語”が中心。

① なぜ COBOL が多いの?

→ 銀行システムの歴史と「絶対に止められない」世界だから

COBOL は 1960 年代から使われている古い言語
でも、銀行の世界では今も現役

理由はシンプル。

お金を扱う処理に強い(桁数・精度)
大量の取引を高速に処理できる
何十年も動き続けてきた実績がある
止めると社会が止まるため、簡単に作り直せない

銀行の基幹システムは、
動いているものを無理に変えない」という文化が強い。

そのため、ATM の裏側も COBOL が多い

② ATM 本体は何で動いているの?

→ OS は「Windows Embedded」や「専用 OS

ATM はパソコンに似ているけれど、
普通の Windows ではなく 専用の組み込み OS が使われる。

Windows Embedded / Windows 10 IoT
Linux ベースの専用 OS
銀行独自の組み込み OS

理由は、

セキュリティが高い
不要な機能を削って安定性を確保
長期間(10年以上)同じ環境で動かせる
外部からの攻撃に強い

ATM は「10年動き続けること」が前提なので、
一般向け OS とは設計思想が違う。

③ ATM の画面や操作部分は何で作られているの?

C / C++ や Java が多い

ATM の画面(UI)は、
COBOL ではなく C / C++ や Java で作られることが多い。

理由は、

グラフィック表示が必要
タッチパネル対応
ハードウェア制御が必要
外部機器(カードリーダー、紙幣機)との連携が複雑

つまり、

お金の処理 → COBOL
画面や操作 → C / C++ / Java

という分業になっている。

④ なぜ Python や JavaScript は使われないの?

→ ATM は「絶対に止められない」世界だから

ATM は、

24時間365日動く
停止すると社会問題になる
セキュリティが最重要
数十年単位で運用する

こうした理由から、
最新言語よりも“実績のある堅牢な言語”が選ばれる。

Python や JavaScript は便利だけど、
ATM のようなミッションクリティカルなシステムには向かない

まとめ

ATM の多くは COBOL で動いている
OS は Windows Embedded や 専用組み込み OS
画面部分は C / C++ / Java
最新言語より「止まらないこと」が最優先
銀行システムは“歴史と信頼性”が最重要

ATM は、
最新技術のショーケースではなく、社会を支える“安定の象徴”と言えます。
阿久梨絵でした!

上部へスクロール
Verified by MonsterInsights