Skip to content
View AdolfoCl's full-sized avatar
😄
😄

Highlights

  • Pro

Block or report AdolfoCl

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AdolfoCl/README.md

Adolfo Díaz

I work on Unisys ClearPath MCP — DMSII, DASDL, WFL, COBOL-74 and COBOL-85, ALGOL and DMALGOL — and on the compilers for them.

Most of what is here answers one of the two questions a team running an MCP machine eventually has to answer: is this database about to stop, and how do we get the data out of it.

Start here: a compiler, in your browser

DASDL reads the language a DMSII database uses to describe itself, builds a model of the database, and writes out a relational schema. Its grammar is drawn as railroad diagrams rather than written, and a generator turns the drawing into the parser.

Run it without installing anything — the compiler itself, compiled to WebAssembly, in one self-contained page. Paste a description or open one off your own disk, and watch the schema come out. The page fetches nothing, so your description never leaves the tab.

Getting the data out

dmsii-to-sql is what that compiler does at production scale: 19,011 lines of a real DASDL description into 780 tables, 69 indexes and 1,034 triggers, in 0.29 seconds. The input and the output sit side by side so the translation can be argued with.

Knowing before it stops

A data set that fills the population declared for it in the DASDL does not slow down and does not warn you. It fails, and the database stays down until someone reorganises that structure. The number that predicts it has been sitting in the description file the whole time.

DBANALYZER prints it for every structure, on one page. SDSANALYZER writes the same inventory as XML, so you can keep a monthly history and read the slope instead of the number. BIGOPEN is for when it already stopped and the control file no longer recognises its own files.

None of the three opens the database. They read the description file, so they take no locks and need no window.

Smaller pieces

LINCOFF2MDB flattens the LINCOFF tree that Unisys EAE (formerly LINC) produces into rows · LIB_CARACTERES gives COBOL the character translation the language does not have · COMMANDS · BUFFERLIB · CLEAR_NOT_ASCII · COBOL-DATE-TO-WORDS


Available for work on ClearPath MCP systems: DMSII modernisation, migration to relational databases, COBOL and ALGOL, and the tooling around them. Chilean and Spanish nationality — I can work in the EU with no sponsorship, and remotely from Chile.

adolfo.diaz@ies.cl

Pinned Loading

  1. dmsii-to-sql dmsii-to-sql Public

    Compiles a DMSII DASDL description into a SQL schema — tables, indexes, views and triggers.

  2. DBANALYZER DBANALYZER Public

    Which structure in your DMSII database is going to stop it, and how long you have.

    3 1

  3. SDSANALYZER SDSANALYZER Public

    DMSII structure saturation as XML, so you can keep a history and read the slope.

  4. BIGOPEN BIGOPEN Public

    Opens a DMSII database whose control file no longer recognises its own files.

  5. LINCOFF2MDB LINCOFF2MDB Public

    Flattens the LINCOFF file produced by Unisys EAE (formerly LINC) into a table.

    Batchfile

  6. LIB_CARACTERES LIB_CARACTERES Public

    ALGOL library giving MCP COBOL programs the character translation the language lacks.

    Batchfile