Login / Signup

EE Software Development - Languages

  • user warning: Table './devemc/sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(sid) AS count FROM sessions WHERE timestamp >= 1422540729 AND uid = 0 in /home/devemc/public_html/dev/includes/session.inc on line 157.
  • user warning: Table './devemc/sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(DISTINCT s.uid) FROM sessions s WHERE s.timestamp >= 1422540729 AND s.uid > 0 in /home/devemc/public_html/dev/modules/user/user.module on line 790.
EE Software Development - Languages

The programmers have their own preferences on programming languages. Me? I personally enjoy C, Perl and PHP because of my working experience in electronics engineering and web programming. Here I will summarize the language capabilities for hardware programming. Different programming languages are designed for specific purposes. The process languages are suitable for hardware programming. Do not get me wrong. OOP are also used for hardware programming as well. C++, Java and Python are good samples for OOP programming, for hardware as well. But some special purpose programming languages are not suitable for hardware programming, for example, markup language like HTML or XML. They are only for data exchange and web programming.

Google directory offers huge resources for programming languges for different purposes.





Assembly language and C/C++ are definitely the most basic native languages for hardware programming. They are foundation languages for high level application in higher level languages. For example, when assembly and C source code are built into executables or DLL, most of the high level languages can utilize that, including all kinds of script languages, VBScript, JavaScript, and shell scripts.

Visual C++ Developer Center of Microsoft.

GCC, the GNU Compiler Collection





Microsoft Macro Assembler MASM for X86





The GNU binutils are collection of binary tools, including as, the GNU assembler.






Delphi is created by Borland, maybe we can call it as "Visual Pascal", it is a bad name, but this nickname is comparable to Visual C++, now it is owned by Borland's subsidiary CodeGear. I am not an expert of Pascal. But it is as powerful as C++. It is used to write device driver in many cases.


BASIC is very popular among programming beginners. There are different BASIC approaches in the programming world, BASIC compiler and BASIC interpreter. The first one is similar like C/C++, the BASIC compiler will compile and build executables file, and normally this kind of BASIC compiler will support inline Assembly. The latter one is popular in most of the modern systems, Visual BASIC in Windows, and MONO project in Linux. There are some BASIC tool chains available on well-known embedded systems, including 8051, PIC and Symbian. Please check related user manual for BASIC programming capability for hardware.

History of BASIC

Visual BASIC Developer Center of Microsoft.


I am not familiar with the hardware programming capacity in Java. But I do know Java supports some hardware ports and programming interfaces, including serial port, IrDA, Bluetooth, TCP/IP. I believe hardware support should be done in Java VM, instead of Java code running on VM. According to Sun's design specification, the hardware support should be achieved via JNI (Java Native Interface), which is normally written in C/C++. That is why a programmer should check JSR documents for specific Java VM. Different VMs have different hardware programming support. And Java is very popular in the embedded systems, from mobile phone to STB, and even robot and toy. So if a specific hardware platform offers JNI, a programmer can use that.

A resoure for Java technology.







JavaScript is a programming language used in browser, invented by Netscape. However I changed my idea about JavaScript programming purpose after my online chat with a Belgium STB design manager. He told me that JavaScript can be used to access some hardware devices, for example the smart card readers. He is searching a software expert to port Mozilla JavaScript to Linux platform. At the moment, I was totally confused by its idea. But check following links, you will find that JavaScript indeed offers some programming capability.

JavaScript.com is your source for all things JavaScript, including tutorials, free java scripts, downloads, tools, and javascript source code.





JavaScript is the Netscape-developed object scripting language used in millions of web pages and server applications worldwide. Mozilla offers many related resource including open source JavaScript engiens and applications.



Microsoft has a notorious product called VBScript, which is developed for the same purpose of JavaScript, but it is the favorite language for hackers and virus makers.

VBScript from Wikipedia






Perl, as a process programming language, is well-known for its regular expression of text manipulation. But Perl has a huge application module inventory, CPAN. It gives the potential of hardware programming with Perl. The hardware support covers serial port, TCP/IP. In the CPAN operation system interfaces section, many modules are available for support hardware programming in RS232, modem, USB, chip card, parallel port, Dallas 1-wire and system calls. BTW, Perl is also quite useful in IC hardware design with hardware description languages.

The Perl Directory at perl.org. Links and other helpful resources for new and experienced Perl programmers.





Comprehensive Perl Archive Network (CPAN).





ActivePerl Pro Studio for Windows. Everything you need to develop, debug, and deploy professional Perl applications.





Python is very popular recently, not only in web programming, but also in general purpose programming. I just started to learn Python, but I know Python can be used in programming serial port and TCP/IP communication. And Python is available in some embedded systems like Symbian mobile phones. There are some initiatives of trying to use Python as a hardware description language due to its concurrent behavior.

Home page for Python, an interpreted, interactive, object-oriented, extensible programming language.

ActivePython is the industry-standard Python distribution, available for Windows.

Read also:

Repost: Jan 16th, 2009

Who's online

There are currently users and guests online.

Recent comments