Legacy Modernization 2026-03-05 7 min read

VB6 and PowerBuilder Migration: The AST-First Approach

Migrating VB6 and PowerBuilder applications to modern platforms starts with understanding the code. AST analysis provides the foundation for accurate, automated migration.

By AITYTECH Engineering

Visual Basic 6 and PowerBuilder applications represent a massive but often overlooked segment of enterprise legacy code. Microsoft ended VB6 IDE support in 2008, yet millions of VB6 applications remain in production across financial services, healthcare, manufacturing, and government. PowerBuilder, while still maintained by Appeon, has a shrinking developer pool and increasing pressure to modernize.

Why These Migrations Fail

The most common approach to VB6/PowerBuilder migration is "lift and shift" — using automated translators to convert code to C# or Java. These translators typically operate at the text level, applying pattern-based transformations. The result is technically correct code that is unmaintainable: it preserves VB6 idioms in C# syntax, creating a new legacy system in a modern language.

The fundamental problem: without understanding the code's structure and intent, translation is just syntax transformation.

AST-First Migration

An AST-first approach changes the process:

  1. Parse — build a complete AST of every VB6/PowerBuilder source file
  2. Analyze — extract components, dependencies, data access patterns, and business rules
  3. Map — create a component map showing which modules group into logical services
  4. Design — architect the target system based on actual behavior, not assumed behavior
  5. Migrate — transform at the AST level with full structural awareness

What AST Analysis Reveals in VB6

Parsing VB6 source into an AST immediately reveals:

PowerBuilder Specifics

PowerBuilder's DataWindow technology presents unique migration challenges. AST analysis can extract:

Our parser supports both VB6 and PowerBuilder with the same API, enabling cross-platform analysis for enterprises that have both types of legacy applications.