Coding and HDL
Languages and tools
Every language you can use in coding questions, and the tools that run them.
Coding questions in mock tests and assessments run your code on Maestro's own code runner. Each question lists the languages it allows, and the language dropdown only shows those.
General-purpose languages
| Language | Notes |
|---|---|
| Python | Standard library. |
| Java | Your class must fit the starter code. |
| C++ and C | Compiled before they run. |
| JavaScript and TypeScript | TypeScript is stripped to JavaScript and run. It is not type-checked. |
| Go | |
| C# | |
| Ruby | |
| Kotlin |
Electronics languages
These appear in electronics (ECE and EEE) questions.
| Language | What it is for |
|---|---|
| Verilog | Digital design: write a module, and a testbench checks it. |
| SPICE | Describe an analogue circuit as a netlist. |
| Octave | Numeric work such as signals and control. |
| Python (SciPy) | The same kind of numeric work in Python. |
| Embedded C | Write the logic of a microcontroller program. See below. |
Tools behind the electronics languages
| Language | Tool | Extras |
|---|---|---|
| Verilog | Icarus Verilog (iverilog), Verilog with the SystemVerilog subset it supports | Verilator lint on each run |
| SPICE | ngspice | |
| Octave | Octave | signal and control packages installed |
| Python (SciPy) | Python with NumPy, SciPy and python-control | matplotlib is installed, but plots are not shown |
| Embedded C | GCC on the runner | The question supplies a hardware header and test harness |
Embedded C
In an Embedded C question you write functions only. The question gives you a hardware header (hal.h) and a test harness that has main() and calls your functions. You can read these under the Hardware files tab.
Hardware registers behave like plain variables. This is not a real microcontroller emulator.
Not available
- No network access, no installing packages, and no files that persist between runs.
- No debugger, interactive input or plots. Programs run in batch and read input from standard input.
- UVM and other advanced SystemVerilog verification features.
- VHDL.
See Limits and FAQ for time and memory limits.