Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

NIST Releases easyEXPRESS – its First Official Visual Studio Code Extension

NIST easyEXPRESS software visual showing lines of code and additional context on errors and suggestions
Credit: CTL

In October 2023, NIST researchers released a preview version of easyEXPRESS, a tool to help EXPRESS-based standard developers. This release also marks an important milestone for NIST as its first official Visual Studio Code extension, available for free through the Visual Studio Code Marketplace.

What is EXPRESS?

EXPRESS model, with errors, in a code editor
Credit: CTL

With the digital transformation of their industry, manufacturers increasingly rely on data interoperability to support their operations from concept to production. That interoperability ensures that the data they share between partners and systems can be understood and used by all. Interoperability is achieved by using information standards that encode and document manufacturers’ data in a consistent and agreed-upon manner understood by all. In this context, information standards are the Esperanto of manufacturers: a universal second language that they all understand and can use to communicate with each other, independent of the language they use internally.

One such standard is ISO 10303 – Standard for the exchange of product data, also known as STEP. STEP is ubiquitous in the manufacturing world where it is used to communicate and exchange information through the full lifecycle of a product. STEP standards are specified in EXPRESS, an information modeling language. EXPRESS allows STEP developers to develop models that formally and programmatically specify how to “speak” valid STEP (e.g., its vocabulary, grammatical rules).

What is easyEXPRESS?

EXPRESS model with easyEXPRESS visual feedback
Credit: CTL

EXPRESS, being a language and standard itself, requires developers to follow complex syntactic and semantic rules to write valid models. EXPRESS models cannot be used until they are verified against the rules of the language. Traditionally, in the STEP development workflow, developers will:

  1. write new or edit existing models in a text or code editor,
  2. run the models through a syntactic and semantic validator in a command line terminal,
  3. analyze the output produced by the validator in the terminal,
  4. return to the code editor to fix the models, and
  5. repeat from step 2 until all errors are addressed.

The constant context-switching between tools and lack of real-time feedback is a major pain point for STEP developers, making addressing new manufacturing interoperability requirements in STEP a slow and tedious process. Moreover, the complexity of manufacturing translates into EXPRESS models that are long and complex to read, understand, and properly edit.

easyEXPRESS was created to address these issues – enabling STEP developers to develop models and implement new capabilities quickly and efficiently. easyEXPRESS augments the Visual Studio Code editor with an advanced EXPRESS development environment and replaces the above STEP workflow with the following:

  1. write new or edit existing models with integrated and real-time syntactic and semantic validation results.

Following common text and code editing conventions, easyEXPRESS provides integrated and real-time feedback in the form of red squiggly lines, as seen in the image above, where a typo on line 11 and a syntax error on line 12 have been identified and reported to the user. easyEXPRESS also provides syntax highlighting to help developers read and visually navigate the EXPRESS models in front of them. Additionally, easyEXPRESS also provides traditional development features such as IntelliSense, Code Navigation, or Symbol renaming.

What's Next?

Still early in its development, easyEXPRESS can be found in the Visual Studio Code Marketplace as an easyEXPRESS extension. Our team is adding new features, implementing additional EXPRESS semantic rules, and following a monthly release schedule. We invite you to keep track of our progress, report bugs, and discuss new features on our public page at usnistgov/easyexpress-public.

Released December 6, 2023, Updated December 7, 2023