Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I hear low-level programming, such as for drivers, embedded systems, operating systems, etc., I immediately think about C and perhaps C++. But mainly C.

But what other languages are also used for these kind of tasks? Today, I mean, not what has been used.

share|improve this question

closed as too broad by gnat, Dan Pichelman, MichaelT, GlenH7, Bart van Ingen Schenau Oct 19 '13 at 9:47

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Normally low level programming such as driver programming is a mixture of an assembly language and C.

The assembly language is used to talk to the hardware and C is used to talk to the kernel.

share|improve this answer
I meant languages on a higher level than assembly, but your point is still valid, of course. =) – gablin Dec 16 '10 at 22:35
Depends on the operating system, on Windows or Linux there is no need for assembly language when writing drivers. You can access the hardware just fine with C. – Jim A Dec 17 '10 at 1:23
The only time you really work with assembly is when dealing with architecture specific quirks, usually when working on something like a virtual memory manager. The programmer writing a device driver, however, is rarely exposed to this. They use the facilities that exist. – Tim Post Dec 17 '10 at 7:22

Ada is still used in safety/mission-critical systems, as it still offers relatively unparalleled safety features.

It was compulsory to use Ada up until the late nineties within the DoD, and some other areas, but is no longer, so is not as heavily used as it once was. But it can still be found in highly critical uses, avionics, nuclear power, etc.

The modern versions have object orientation and good support for parallel processing, so is entirely useful still.

share|improve this answer
I think we will use Ada in one of the embedded systems courses I'm taking in spring. – gablin Dec 17 '10 at 11:12
@gablin: Aye, it's commonly used in embedded systems, quite a good choice for that. – Orbling Dec 17 '10 at 12:21

I did some research for 8-bit programming a little while ago (hobby related; I wanted to try building some basic electronics). Other than C and Assembly, the only languages I found mentioned favorably for these tasks were Scheme and Forth.

share|improve this answer
+1 Oh yes, building basic electronics is going to be my hobby soon and I can't wait to start using Make: Electronics book for this hobby – Anthony Aug 25 '12 at 4:19

Cython is one example. Not for embedded systems, but for drivers and other low level programming it's used more and more in the Python world as a replacement of C. You get both a compiled Python, but also low level access and type hints for speedups.

As a Python fanatic that's what I use, although admittedly very rarely and so far not in any serious context.

share|improve this answer
Never heard of it before, but thanks for the enlightment. =) – gablin Dec 16 '10 at 22:33
("more an more" -> "more and more") – Peter Mortensen Mar 24 '14 at 18:36

Well, I did some work on embedded systems through last years using C and Lua.

Check out eLua as well.

-- EDIT: Here in Brazil we do have a "new technology" for Digital TV's, called Ginga. It's really a standard, but in this standard the Lua language is used as one source of embedded language. The other one is Java.

I guess we can cite Java as well, for some special systems like JavaCards. If those are not embedded systems, than I don't know what embedded means... :)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.