University of Virginia, Department of Computer Science
CS655: Programming Languages
Spring 2000

Jeffrey Harry
Mock Attorney at Law

22 March 2000

 

Deposition taken from Anir De, Senior Software Engineer GE Industrial Systems

 

         Mr. De, what type of work do you do?
"I am an embedded firmware designer for motion control applications."

         What are the most important characteristics you look for in a language to be
used to program embedded systems?

"I need a language that fulfills all of my application requirements.  It
must compile into space efficient object code.  It must have very efficient
run-time execution speeds.  It must be portable across different processors
and different generations of processors.  We have to be able to purchase
support tools that are compatible with the language to aid with system
development.  To develop an embedded system you must have access to
compilers, in-circuit emulators, debuggers, etc.  Also, there must be an
ample supply of developers that are familiar with the language.  As projects
change scope, the addition of new developers is required to fill replacement
and new positions on the team."

         What type of processors do you use in your line of work?
"Intel x86, Analog Devices DSP 21xx, Texas Instruments DSP TMS320Cxx,
Hitachi SH-DSP."

         What languages do these processors support?
"Mainly C/C++ and assembly."

         Does C/C++ fulfill all of your requirements?
"Yes.  C/C++ produces very size and run-time efficient code, and it is also
supported by almost all microprocessors within the embedded market.  There
are many manufactures of support tools for code development, debugging, and
compilation.  The language is portable and it reduces development effort
when we design new generations of an existing product line. Also, there is a
large pool of experienced C/C++ developers to fill positions from, and it's
easier to train current employees who are familiar with C to use C++,
rather than to train them to use an entirely new language.  We use C/C++
almost exclusively."

         Do you have to read code written by other individuals?
"Yes, very often."

         Do these individuals still work for you company?  Basically, I want to know,
can you ask them what their code is doing?

"Some of the individuals are still around, but not all."

         Do you have any complaints about the readability, or maintainability, of
C/C++?

"No, the syntax of C/C++ lends well to structured programming, and to the
documentation requirements of my company.  I don't usually have any problems
discerning the purpose of C/C++ code."

         The defendant is accused of providing "unchecked flexibility" that leads to
"poor programming style".  Does this flexibility hamper your development
efforts in any way?

"No, actually, in embedded firmware systems, flexibility is not only useful,
but is often a requirement of my application domain since it involves low
level device programming and control."