pli-migration-analyzer
PL/I Migration Analyzer
Analyzes legacy PL/I programs and generates Java migration strategies. Extracts business logic, data structures, procedures, and dependencies to produce actionable migration plans.
Workflow
1. Discover PL/I Programs
Find PL/I source files in the workspace:
find . -name "*.pli" -o -name "*.PLI" -o -name "*.pl1"
2. Analyze Program Structure
For each PL/I program, extract:
- Entry points: PROCEDURE OPTIONS(MAIN)
- Declarations: DCL statements (FIXED DECIMAL, FIXED BINARY, CHARACTER, BIT, structures)
- Procedures: Nested procedures and functions
- File operations: OPEN, READ, WRITE, CLOSE statements
- Exception handling: ON conditions (ENDFILE, ERROR, etc.)
- Dependencies: CALL statements, %INCLUDE directives
Use scripts for automation:
extract-structure.py <source_file>- Extract structural informationanalyze-dependencies.sh <directory>- Generate dependency graphestimate-complexity.py <source_file>- Estimate migration effort
3. Map to Java Design
Convert PL/I elements to Java:
- Structures → POJOs with appropriate types
- Procedures → Service methods
- File operations → Java I/O or database operations
- ON conditions → try-catch exception handling
- Arrays → Lists or arrays (adjust 1-based to 0-based indexing)
Critical Type Mapping:
FIXED DECIMAL(n,m)→BigDecimal(NEVER float/double)FIXED BINARY(n)→int,longCHARACTER(n)→StringBIT(1)→boolean
4. Generate Java Implementation
Create Java classes using:
generate-java-classes.py <data_structure_file>- Generate POJOs from structures
Ensure:
- BigDecimal for all financial calculations
- Proper exception handling (no GO TO)
- Array bounds adjustment (1-based → 0-based)
- String operations adjustment (SUBSTR is 1-based, substring is 0-based)
5. Produce Migration Report
Generate comprehensive report with:
- Program Overview: Purpose, entry points, complexity estimate
- Dependencies: Called procedures, included files, external references
- Data Structures: Tables with PL/I types and Java equivalents
- Business Logic Summary: Key algorithms and rules
- Java Design: Proposed classes, methods, packages
- Migration Estimate: Effort in person-days, risk assessment
- Action Items: Prioritized tasks with owners
Use template: assets/migration-report-template.md
Quick Reference
Common Conversions
Procedure to Method:
CALC_TOTAL: PROCEDURE(qty, price) RETURNS(FIXED DECIMAL(15,2));
result = qty * price;
RETURN(result);
END CALC_TOTAL;
→
public BigDecimal calcTotal(BigDecimal qty, BigDecimal price) {
return qty.multiply(price);
}
File I/O to Streams:
DO WHILE(¬eof);
READ FILE(infile) INTO(rec);
CALL process_record(rec);
END;
→
try (BufferedReader reader = Files.newBufferedReader(path)) {
reader.lines().forEach(this::processRecord);
}
Critical Rules
- Use BigDecimal for FIXED DECIMAL - Float/double lose precision
- Arrays are 1-based in PL/I, 0-based in Java - Adjust loops and indices
- Refactor GO TO statements - Use structured control flow
- ON conditions map to try-catch - Exception handling strategy required
- SUBSTR is 1-based - Java substring is 0-based and end-exclusive
Detailed References
For comprehensive information:
- Type mapping & patterns: pli-reference.md - Complete data type conversions, code patterns, migration checklist, common pitfalls
- Pseudocode translation: pseudocode-pli-rules.md - Rules for converting PL/I to pseudocode
- Transaction handling: transaction-handling.md - Database transaction patterns
- Performance: performance-patterns.md - Optimization strategies
- Messaging: messaging-integration.md - Event-driven patterns
- Testing: testing-strategy.md - Test approach and validation
Output Format
Structure migration reports with these sections:
# [Program Name] Migration Analysis
## Executive Summary
High-level overview and recommendations
## Program Overview
Purpose, functionality, complexity metrics
## Dependencies
Procedure calls, file dependencies, external references
## Data Structures
Tables mapping PL/I structures to Java classes
## Business Logic Analysis
Key algorithms, rules, calculations
## Java Design Proposal
Package structure, class design, API interfaces
## Migration Estimate
Effort (person-days), risk level, timeline
## Action Items
Prioritized tasks with acceptance criteria
More from dauquangthanh/hanoi-rainbow
frontend-design-review
Conducts comprehensive frontend design reviews covering UI/UX design quality, design system validation, accessibility compliance, responsive design patterns, component library architecture, and visual design consistency. Evaluates design specifications, Figma/Sketch files, design tokens, interaction patterns, and user experience flows. Identifies usability issues, accessibility violations, design system deviations, and provides actionable recommendations for improvement. Produces detailed design review reports with severity-rated findings, visual examples, and implementation guidelines. Use when reviewing frontend designs, validating design systems, ensuring accessibility compliance, evaluating component libraries, assessing responsive designs, or when users mention design review, UI/UX review, Figma review, design system validation, accessibility audit, or frontend design quality.
276frontend-ui-ux-design
Creates comprehensive frontend UI/UX designs including user interfaces, design systems, component libraries, responsive layouts, and accessibility implementations. Produces wireframes, mockups, design specifications, and implementation guidelines. Use when designing user interfaces, creating design systems, building component libraries, implementing responsive designs, ensuring accessibility compliance, or when users mention UI design, UX design, interface design, design systems, user experience, or frontend design patterns.
167keycloak-administration
Provides comprehensive KeyCloak administration guidance including realm management, user/group administration, client configuration, authentication flows, identity brokering, authorization policies, security hardening, and troubleshooting. Covers SSO configuration, SAML/OIDC setup, role-based access control (RBAC), user federation (LDAP/AD), social login integration, multi-factor authentication (MFA), and high availability deployments. Use when configuring KeyCloak, setting up SSO, managing realms and clients, troubleshooting authentication issues, implementing RBAC, or when users mention "KeyCloak", "SSO", "OIDC", "SAML", "identity provider", "IAM", "authentication flow", "user federation", "realm configuration", or "access management".
165oracle-cloud
Provides comprehensive Oracle Cloud Infrastructure (OCI) guidance including compute instances, networking (VCN, load balancers, VPN), storage (block, object, file), database services (Autonomous Database, MySQL, NoSQL), container orchestration (OKE), identity and access management (IAM), resource management, cost optimization, and infrastructure as code (Terraform OCI provider, Resource Manager). Produces infrastructure code, deployment scripts, configuration guides, and architectural diagrams. Use when designing OCI architecture, provisioning cloud resources, migrating to Oracle Cloud, implementing OCI security, setting up OCI databases, deploying containerized applications on OKE, managing OCI resources, or when users mention "Oracle Cloud", "OCI", "Autonomous Database", "VCN", "OKE", "OCI Terraform", "Resource Manager", "Oracle Cloud Infrastructure", or "OCI migration".
82backend-design
Designs comprehensive backend systems including RESTful APIs, microservices, database architecture, authentication/authorization, caching strategies, message queues, and scalability patterns. Produces API specifications, database schemas, architecture diagrams, and implementation guides. Use when designing backend services, APIs, data models, distributed systems, authentication flows, or when users mention backend architecture, API design, database design, microservices, or server-side development.
55requirement-review
Conducts comprehensive requirements review including completeness validation, clarity assessment, consistency checking, testability evaluation, and standards compliance. Produces detailed review reports with findings, gaps, conflicts, and improvement recommendations. Use when reviewing requirements documents (BRD, SRS, user stories), validating acceptance criteria, assessing requirements quality, identifying gaps and conflicts, or ensuring standards compliance (IEEE 830, INVEST criteria). Trigger when users mention "review requirements", "validate requirements", "check requirements quality", "find requirement issues", or "assess BRD/SRS quality".
52