# Maguyva 對 COBOL 的支援：為傳統系統現代化而生的依賴分析

Canonical source: https://maguyva.ai/zh-hant/languages/cobol

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva 透過 AST 剖析與符號擷取支援 COBOL，讓 AI 代理能在展開現代化或重構工作之前，先繪製出程式結構、copybook 使用情形與依賴路徑。

## 支援概況

- 等級: AST 與符號支援
- 程式語言
- 副檔名: .cbl, .cob, .cpy
- 真正的 AST 剖析，支援語法感知搜尋與結構化情境。
- 具名符號支援語意查詢與交叉參照。啟用關係擷取後，即可使用圖譜導覽。
- 這個語言會為圖譜感知搜尋提供符號與關係；支援的邊類型會隨其原生構造而異。
- 同時支援 AST 剖析與符號擷取。

## 最適合的情境

- 負責將仍在執行重要商業流程的 COBOL 系統現代化的團隊。
- 在變更之前，需要先將 copybook、批次邏輯與程序流程繪製清楚的儲存庫或擷取出的程式碼庫。
- 以代理協助進行探索性工作，第一目標是理解並記錄一套傳統系統資產，而不是盲目地重寫它。

## 代理工作流程

- 在規劃現代化步驟之前，先繪製出程式與 copybook 之間的關係。
- 找出一項提議中的變更會觸及哪些常式或資料定義。
- 為工程師在撰寫文件、遷移或重構規劃時，提供更安全的起點。

## 為什麼 Maguyva 支援 COBOL 很有意義

任何人都能宣稱自己的 AI 工具支援現代應用程式語言。COBOL 之所以更有意義，是因為它逼著這款產品誠實面對自己真正擅長什麼。在傳統程式碼中，價值不在於快速生成，而在於探索、依賴關係繪製、審慎審查，以及現代化規劃。

如果 Maguyva 在 COBOL 上真的有用，那是因為它能幫助工程師，在著手將一套至今依然重要的系統現代化之前，先理解它。

## Maguyva 在 COBOL 中實際擷取了什麼

Maguyva 涵蓋 `.cbl`、`.cob` 與 `.cpy`，讓 copybook 能與程式共處於同一個搜尋介面之中。它在進行關係分析時，還會從呼叫目標中去除包裹用的引號與括號——這一點在 COBOL 程式碼庫中格外重要，因為這類包裹寫法相當常見，足以讓單純的文字比對變得雜訊過多。

對於物件導向 COBOL，Maguyva 會擷取類別繼承關係。當父類別與子類別定義在同一個原始碼檔案中時，也會連結方法覆寫關係。以類別限定的方法名稱能區分覆寫方法與父類別中的方法，協助代理在修改類別前檢查繼承的行為。

## 對現代化探索有用的 MCP 工作流程

最佳的切入點，都偏向探索導向：

- 對於像「追蹤客戶資料批次更新流程中 copybook 的使用情形」這樣的提示，使用 `get_task_context`。
- 針對程式名稱、copybook 名稱與穩定的批次進入點，使用 `text_pattern_search`。
- 在你找出一個共用常式或定義、需要查看它在哪裡被使用時，使用 `dependency_search`。

## 這個頁面適合什麼情境

這個頁面適用於傳統程式碼探索與現代化規劃，而不是程式碼生成。如果你的系統資產混合了 COBOL 與較新的服務層，可以將它與 [Java](/zh-hant/languages/java) 或 [C#](/zh-hant/languages/csharp) 相互比較。如果你只需要支援矩陣，請參閱 [相容性](/zh-hant/docs/compatibility)。

## 引擎細節

- COBOL 支援涵蓋 `.cbl`、`.cob` 與 `.cpy`，讓 copybook 能與程式維持在同一個搜尋範疇中。
- 在進行關係分析之前，帶引號的呼叫目標會被正規化，移除外層的引號與括號。
- 物件導向 COBOL 支援類別繼承。當父類別與子類別定義在同一個原始碼檔案中時，方法覆寫關係會使用類別限定的名稱。

## 實用的 MCP 進入點

- `get_task_context`: 針對像「追蹤 copybook 在客戶批次更新流程中的使用情況」這類探索性提示，從這裡開始。
- `text_pattern_search`: 當術語穩定時，用它來搜尋程式名稱、copybook 名稱與批次進入點。
- `dependency_search`: 找出某個常式或共用定義後，若想查看它在哪裡被使用，就用這個工具。
