Ivory: an embedded domain-specific language for safer systems programming
ivorylang.org
ivorylang.org
https://smaccmpilot.org/software/properties.html
Also, check out their blog, Github, and talks for lots of interesting stuff. In case anyone wonders, I have no affiliation with them: just a high-assurance researcher that gives props to those in field doing solid work, esp if FOSS-friendly. :)
> The Tower Language is an eDSL for composing Ivory programs into real-time systems. Tower programs specify communication channels, tasks, and signal handlers, and generate Ivory code which implements scheduling and communication for real-time operating systems.
For me the way to go are tools like matlab simulink to better figure out a complex program, and not yet another language trying to catch memory corruption bugs.
The more important issues we face are also significantly more difficult to solve with a simple tool, so there's correspondingly fewer solutions to even look at and they're often more disruptive to test than a new language.
Anyway i would love to have an open source Simulink-like IDE which generates C code. There is currently not much choices in model based tool, and none are open source.
I don't know about this project, but unmaintained copyright years has been the case in almost every project that I've taken the time to look at (and that has them). Unless a project has an active legal team, I wouldn't use such dates to mean anything (for better or worse).
Have a look at the pull requests and issues, I'm wondering if this may be an internal project from GaloisInc but not actively maintained externally.
So they started at probably one of the worst times to start a tech company (right at the dot-com bust) and are still around.
That says nothing about whether Ivory will get any traction, but at least there's an apparently stable company behind it.
1. Design systems that either never fail in field or fail safe. Many also want recovery mechanisms that always work.
2. Part many miss: convince other people from buyers to regulators they did No 1.
One reason both Ada and formal specifications are so verbose is that lots of detail that's implicit in lots of languages are explicit in them so they can be reviewed. People overlooking detail due to verbosity is a common problem. People in this industry are disciplined enough to look at stuff in detail, though. So, the tradeoff of languages in this field is to optimize for software being read by people who want no stone unturned.
Now, what I cant tell you is how much verbosity is due to it being embedded in Haskell or just its own design. Verbosity doesnt surprise me, though.
Yet it remains by far the most relevant keyword in my experience. I would think "firmware" would be a better, or at least sufficient catch-all.
> Embedded: Ivory is implemented as a library of the Haskell programming language. Ivory programs are written using Haskell syntax and types.
An "embedded DSL" is written inside a host language. It is different from a DSL which is parsed from characters using an interpreter or compiler.
I agree it's a confusing term in this context. I've also used the term "hosted". Wikipedia also suggests "internal". https://en.wikipedia.org/wiki/Domain-specific_language#Domai...
Either this would add jobs that hit "software" or "developer" in isolation,(see original problem) or it would filter out "Embedded programmer" or "Embedded systems engineer", if those ads didn't include all three individual terms "embedded", "software", and "developer". (Why I tolerate my current approach)
I've always assumed I was casting the optimally sized net with a single keyword, and no better alternative existed for purposes of completeness.