Skip to content

Roadmap

Olivier Smedile edited this page Jun 27, 2017 · 19 revisions

Here is a list of features we would like to be implemented, grouped by milestone.

Version 1.0 - Types and procedures

User features

TypeCobol language

  • Type (weaked and strong) - specs comes from Cobol 2002 + Type Strict close to Strong
  • Intrinsic type based on Cobol 2002 type:
    • Types Date, bool
  • "::" operator which is used as the dot operator in modern language
    • Can't be used with arrays
  • Procedures *[X] Shorter syntax to declare a procedure than a sub-program *[x] Control caller arguments during compilation time (partially) * Control only number of arguments and their type *[x] Write clearly which arguments serves as input, output or both *[x] Propose visibility mechanism: only public and private for now

Code generation

  • Generate Cobol 85 code from a TypeCobol source file

IDE integration

Propose a Console Interface

  • Parse a Cobol file to check for errors
  • Convert a TypeCobol source file to a Cobol 85 file

Technical Considerations

Incremental parsing

Do lexical analysis [?]

Do syntactic analysis [?]

  • Write a complete Cobol grammar
  • Build ANTLR tokens into into code elements

Do semantic analysis

  • Build an abstract syntax tree [?]
  • Build a symbol table [?] since then
  • Be able to resolve naming errors since then
  • Build a representation for Cobol types
  • Be able to resolve type errors

Run as a server to be incremental

  • Be able to run as a stateful server

Cobol 85

  • Full Cobol 85 grammar support (full grammar is written, but we still need to implement semantic checks)

Cobol 2002

  • Type grammar (weak and strong) + semantic rules

Multiple layer of (Type)Cobol language

  • Write the language grammar (TypeCobol and Cobol 2002) as a superset of Cobol 85 grammar
  • Extend the Cobol 85 AST with Cobol 2002 and TypeCobol CodeElements

Version 1.1 - Types, procedures/functions, error code (Release for 2017/2018)

User features

TypeCobol language

  • Full support for operator "::"
    • Operator ":::"
  • Functions support
  • Basic support for error code in function and procedures (implicit parameter)
    • Check if caller test error code
  • Procedures and functions enhancement
    • Control caller arguments during compilation time (Full support)
    • Propose visibility mechanism (Full support)

Version 1.2 - Types, procedures/functions, error code and namespaces (Release for 2018)

User features

TypeCobol language

  • Namespaces
    • Namespaces support for types, functions and procedures

Milestone X (planned for ..when it's done) - TypeCobolEditor for Eclipse

Incremental parsing

Do semantic analysis

  • Implement COBOL semantic errors for most common statements
  • Implement 100% of COBOL semantic errors

Run as a server to be incremental

  • Optimize data serialization
  • Define an interface for the server allowing to support all features of a modern IDE

Code generation

  • Generate Cobol 2002 code from a TypeCobol AST
  • Make the generated code RCS friendly
  • Make the generated code Cobol debugging friendly

IDE integration

  • TypeCobolEditor for Eclipse
  • vscode implementation
Clone this wiki locally