1

I'm reading Code Complete (2nd Edition) and in Chapter 21 the author mentions the terms system code and application code in the context of formal inspections, saying that system code has to be handled at a slower pace than application code in order to be productive.

I've tried searching the web for a distinction between the two types of code. Are these terms standard throughout the industry? Could someone point me to a resource where the terms are described in a bit more detail?

6

It's been a few years since I've read the book, but if I recall correctly, what he's referring to as system code would be operating system code. System code would be the low level code that your application calls to allocate and free system resources like memory, UI windows, etc. or that sends a packet over the network. There's also the code that communicates with various pieces of hardware, such as graphics cards, hard drives, network cards, USB devices, etc. These are called drivers and are often considered system software as well.

Application software is generally the software that makes the applications you use on a computer or other device. This could be things like Microsoft Word or a game like Call of Duty or a tool like Photoshop. It could also be command-line tools like grep, awk, and find on Unix, or cd and dir on DOS. When you click an icon on the home screen of your phone or tablet, you're launching application code. Unless you work for an operating system vendor like Apple or Microsoft, or are working on the Linux OS, or writing the drivers for a hardware company, you are probably writing application code.

  • The first paragraph you're on track but the second one! some collections please! – quintumnia Sep 16 '17 at 15:41
  • 3
    @quintumnia Can you clarify? I'm not sure I understand what you're saying. You want me to add some more collections of application code? – user1118321 Sep 16 '17 at 15:45
  • You want me to add some more collections of application code? Yes,to help future visitors. – quintumnia Sep 16 '17 at 15:48
  • 1
    OK, I've added a few more. – user1118321 Sep 16 '17 at 15:53
2

The author defines neither of those terms in the book. However, "system code" can be taken to mean software that performs necessary functions to maintain the system (e.g. graphics drivers, etc) and possibly the run-time environment (e.g. Java Virtual Machine, etc) that the "application code" is executing in.

For example, an application for a mobile device (e.g. Android app) would typically be written in a high-level language (i.e. "application code"). However, the mobile device (e.g. Android phone) would host the necessary operating system and run-time environment that the application needs in order to execute (i.e. "system code").

-2

These terms are easily mistaken for each other. Application code is a set of programs or functions designed to carry out a specific function( s) and runs on top of 'System code'. 'Application code' cannot run itself, this is where system code kicks in.

Note 'Application code' can access/leverage 'System' code/resources.

For more info see source link here

  • 3
    The phrase "'Application code' cannot run itself" is not meaningful. Code can run on any processor without the help of a "system;" all you need is a startup jump address. The link you provided does not explain the term "system code." – Robert Harvey Sep 16 '17 at 14:30
  • 1
    @RobertHarvey , But to some extent,the answerer is right – quintumnia Sep 16 '17 at 16:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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