2.0 RD-VBA Computational Environment

Note

This specification may be incomplete at this time.

MS-VBAL 2. VBA Computational Environment
VBA is a programming language used to define computer programs that perform computations that occur within a specific computational environment called a VBA Environment. A VBA Environment is typically hosted and controlled by another computer application called the host application. The host application controls and invokes computational processes within its hosted VBA Environment. The host application can also make availabel whtin its hosted VBA Environment computational resources that enable VBA programs to access host application data and host computational processes. The remainder of this section defines the key computational concepts of the VBA Environment.

👉 A RD-VBA program does run inside a host, but that host is rdc.exe rather than a Microsoft Office application. This does have yet-unresolved implications with regards to run-time interoperability, but should not affect general semantic compatibility.

🎯 rdc.exe is a command-line interface (CLI) application whose role is to assemble and host the library that is defined by the source code in a workspace program. This application is a work in progress.

  • In RD-VBA the concepts of a workspace and of a workspace folder are defined by the Language Server Protocol (LSP v3.17);
  • A workspace program is an executable in-memory representation of a RD-VBA workspace;
Tip

In LSP, a Workspace Folder corresponds essentially to a VBProject, and a Workspace corresponds to a project group.

This means a RD-VBA project must necessarily stand on its own and physically exist in the file system, which constitutes a fundamental paradigm shift for VBA code.


2.0.1 Supported Languages

A RD-VBA environment host may configure language-level restrictions or extensions, depending on the capabilities of the host application:

  • VBA refers to the Visual Basic for Applications language as per the MS-VBAL language specification;
  • VB6 largely refers to the same language definition, without the restrictions around attribute semantics and with a limited set of additional semantics;
  • VBX refers to extended RD-VBA; an environment host that signals support for this language code may support semantics that would be illegal in VB6 or VBA;
  • VBS refers to a diminished language specification that removes Option Explicit and declared types, forcing the use of duck-typing using implicit Variant declarations;
  • BASIC refers to a diminished language specification that removes procedure scopes, forcing the use of REM for comments (this makes annotations unavailable), line numbers and GoSub/Return for control flow; Do...Loop and Do...While constructs are undefined, forcing the use of While...Wend constructs; etc.

This list is prioritized but not intended to be exhaustive; additional dialects may be supported by different RD-VBA hosts.

🎯 The scope of the RDCore SDK minimally covers VBA, then VB6, then VBX, and so on.
👉 The LSP paradigm shift alone brings RD-VBA much closer to how VB6 works already.


2.0.2 Client/Server Capabilities

Note

This documentation is incomplete.

This section intends to exhaustively document all supported RDCore platform capabilities.

Capability Description Platform Version
Note

First and third party extensions distributed through the RDCore Platform Cloud Infrastructure MAY use a capability provider that MAY validate the availability of certain advanced capabilities by requiring 2FA authentication, the validation of an active subscription (free or paid), and the validation of the signed build against the certified distribution channel build.


In this section


⏮️ RD-VBAL §1.0 Introduction | ⏭️ RD-VBAL §3.0 Syntax Tree