F1RE Technology Blog

Notes from inside language engineering.

Technical articles from F1RE engineers on Model-Driven Engineering, Domain-Specific Languages, JetBrains MPS, LionWeb and SysML v2.

All posts Β· 30

Quieting JUL Warnings That Maven Tags as [ERROR]

In a Maven+Ant build using MPS, harmless JUL warnings appear as [ERROR] entries in the CI log. This post describes the cause and two possible fixes with their trade-offs.

Published

JavaMavenJetBrains MPSLogging

Caching MPS Build Output in GitHub Actions

This post will follow a checklist for caching MPS generated output in GitHub Actions, and a summary of the gotchas we hit along the way.

Published

JetBrains MPSGitHub

Good method names

Everybody wants well-named methods — but what does that mean? We discuss the purpose of method names, guidelines for choosing them, and look at good and bad examples.

Published

Software architecture

SysML v2 language in LionWeb

In this blog post I describe how I transferred the SysML v2 language from its EMF implementation into MPS and Freon language workbenches, using the LionWeb protocol

Published

LionWebSysML2JetBrains MPS

F1RE Partners with Freon for Web-Based DSL Development

We’re excited to announce that F1RE is partnering with Freon, a platform for web-based domain-specific language (DSL) development.

Published

F1REDSLFreon

Model First, AI Second: The F1RE Approach

We describe the envisioned approach of F1RE when integrating AI into systems

Published

Domain Specific Languages

What are domain specific languages (DSLs) and language workbenches? Here is a small introduction on why, what and how of DSLs.

Published

DSL

Implementing LionWeb in Rascal

Recently I have been working on the implementation of the LionWeb protocol in Rascal.

Published

LionWebRascal

Different ways of implementing enumerations in MPS and why they matter

We go over the different techniques for implementing enumerations in MPS and go over the advantages and disadvantages.

Published

JetBrains MPS

πŸ› οΈ Exploring the World of DSLs: Crafting Custom Solutions 🌟

In this example we explain how a DSL could be of use, with example of an artist and his specific needs

Published

DSL

πŸš€ Unlocking the Power of Domain-Specific Languages in Tax Law πŸš€

In this example we explain how a DSL could be of value in the domain of Tax Law

Published

DSL

F1RE Season pass

Expertise when you urgently need it.

Published

F1RE

Consulting Expertise

Our way of working explained.

Published

F1REDSLMDE

Single Source of Truth Validation

DSLs use at its fullest potential.

Published

DSL

Celebrating Three Years of F1RE: Our Journey So Far

As F1RE turns three, I wanted to reflect on a journey filled with growth, challenges, and progress. Building a consultancy company specializing in Model-Driven Software Engineering and Language Engineering is...

Published

F1RE

Architectural views for software design

Architectural views for software design, a classification for software specifications

Published

Software architecture

My Thoughts on LangDev 2023

The LangDev 2023 conference, hosted by the Belastingdienst, in Utrecht, was all about web integration.

Published

LangDev

JetBrains MPS Build Script Creation and Debugging Checklist

We will specify a checklist of steps for creating build scripts and one for fixing issues with them.

Published

JetBrains MPS

Presentation at MPS Community MeetUp about NSD Tool

We gave a talk "Communicating Complex logic with ease" at the 2023 MPS Community MeetUp in Munich.

Published

JetBrains MPS

Presentation at LangDev Conference about MPS Interpreters

We gave a talk "Fast, integrated and debuggable Interpreters in MPS and beyond" at LangDev conference.

Published

JetBrains MPSLangDev

Adding smart references using transformation menus

This post will follow a user friendly way of creating nodes, adding them to a location of our choice and referring to them from a smart reference, from the transformation menu of a smart reference.

Published

My impressions on JetBrains MPS Advanced Course

Navigating through MPS is a tough ordeal when you are a beginner. Luckily there are resources for us that can help us with the process of learning to manipulate the tool. This post is my opinion on one such material - the MPS Advanced Online Course.

Published

JetBrains MPS

MPS language design patterns: Multiple generators for same language

If we need more than one generator for the same language, things can become complicated. With help of generation plans, we can sort generators apart cleanly, and let the user decide which ones to engage.

Published

JetBrains MPSGenerators

MPS Generators

Introduction to MPS Generators, and an explanation of the Loop macro statement.

Published

JetBrains MPSGenerators

What is Model Driven Engineering

In this post we will explain what model driven engineering and what a domain specific language is.

Published

DSLMDE

Welcome to F1RE and our technology blog

On these pages we share our accumulated knowledge within the model driven software engineering domain. We share some insights and useful content here.

Published

F1RE

JetBrains MPS Shortcuts

In this post we will explain the best and most useful shortcuts MPS has, in what context they are used and a little bit more.

Published

JetBrains MPS

JetBrains' MPS Getting Started Part II

Part two of the Getting started with JetBrains' MPS DSL development series where we will extend a library language with behavioural aspects.

Published

JetBrains MPSDSL

JetBrains' MPS Getting Started Part I

Part one of the Getting started with JetBrains' MPS DSL development series where we will create a basic DSL that will simulate a library.

Published

JetBrains MPSDSL

MPS language design patterns: Externalized names (and other common attributes)

We often want to intermix referred names and defined names. This works best if we plan ahead for this situation, and have a shared abstraction for both of them from the beginning.

Published

JetBrains MPS