Skip to content

Academia – say "hello world" to EM

SUMMARY

The EM Foundation  promotes / sustains a novel programming language for resource-constrained MCUs.

Birthed in academia and matured in industry, the EM language has recently become open source software .

EM offers many collaborative opportunities for CS/CE departments wishing to assume a leadership role.

The EM software platform comprises a novel programming language and runtime which targets resource-constrained MCUs. Originally developed in 2010, EM has evolved over the past decade through a series of commercial deployments in low-power, low-cost wireless IoT applications. To encourage broad adoption of this technology, The EM Foundation (a non-profit formed in 2023) now makes the language and its runtime openly / freely available.

While EM leverages modern software constructs like interface inheritance and component composition, novel optimization techniques employed by the underlying language translator enable EM programs to invariably outperform their hand-crafted C counterparts in terms of time and (especially) space.

Often targeting MCUs with ≤ 32 K of memory, real-world applications – including a BLE wireless stack – can comfortably fit within these constraints.  A 5X - 10X size reduction in typical embedded applications can also drive comparable savings in energy consumption as well as overall system cost.

EM – a higher-level programming language AND a higher-level of program performance

Conceived in the university

Before addressing some opportunities for academic collaboration, you should make a quick pass through Introducing EM to understand a little more about the language and its run­time. The Tiny code → Tiny chips subsection already takes us to some fertile grounds for future investigation; EM's initial engagement with the RISC-V community should also spark interest within university environments.(1)

  1. This presentation from the RISC-V Europe Summit contains further details.

While you can certainly skip the technical overivew of the language and its runtime for now, we strongly encourage you to read The history of EM subsection – and do note the seminal role played by UC Santa Barbara in the birthing and early development of EM.  In retrospect, EM would not exist today without a nuturing university environment.

Managing open-source projects

With an abundance of open-source software ranging from host tooling to target drivers (plus open-source hardware ranging from Arduino boards to RISC-V MCUs), CS/CE university programs should (in our humble opinion) arm their students with knowledge of open-source best practices – enabling them to not only participate in established projects, but also to create their own open-source initiatives which they could lead and manage.

Given that the transition of the EM technology into the open-source domain has only just begun, "ground-floor" opportunities await enterprising CS/CE departments motivated to assume a leadership role in the process. Said another way, The EM Foundation seeks help from universities to support its mission – promoting, sustaining, and evolving the EM programming language and runtime for use by the broader embedded systems community.

Areas for technical contribution

From an academic perspective, the depth / duration of potential technical contributions to EM can range from (say) a single-semester undergraduate project to multi-year graduate-level research culminating in a thesis.  Some areas of mutual interest might include:

Overall management of EM repositories housed at GitHub – coordinate the transition of existing (private) sources to public repos; introduce processes defined by open-source maturity models.

Evolution of the (command-line) EM translator plus its companion VS Code extension – relatively stable, quite compact (~12 K lines of TypeScript), but with many opportunities for adding new features.

Perpetual expansion of the EM language runtime – ports to different MCUs, device drivers for sensors / controllers, wired / wireless communication stacks, machine-learning algorithms, etc.

New MCU architectures tailored for EM – take on the Tiny code → Tiny chips challenge; leverage RISC-V IP targeting FPGAs for proof-of-concept; add application-specific CPU instructions, etc.

Call to action – contact us

If EM appears to align with the interests of your department, don't hesitate to message The EM Foundation on Linkedin with any questions you may have.

In the interim, continue to explore the material at docs.openem.org as well as read our weekly posts at blog.openem.org.

And if you really feel motivated, dive into Installing EM and download the EM SDK – though perhaps you'll leave this task as an "exercise for the student" .