Informal Code Analysis

Introduction to Informal Code Analysis

  • Informal Code Analysis is a process where you review your own or somebody else’s code to understand what it does, how it works, and to detect potential errors.
  • The aim is to gain a deeper understanding of the program, beyond a simple execution or running of it.
  • Informal code analysis relies on your understanding of programming concepts, logical thinking, and some creativity as well.
  • This is a very common activity in real-world programming, and is a step towards more formal methods like testing or debugging.

Basic Concepts in Informal Code Analysis

  • Code analysis often starts with identifying key components of the code — such as loops, variable assignments, function calls, conditionals, and so forth.
  • Always pay attention to the logic of the program, for example, how different variables interact, how the flow of control moves through the program, and what the inputs and outputs are.
  • Always look for what functions do — do they modify global state, do they return a value, do they perform an action?
  • The use of comments in the code can be helpful in understanding the intentions of the programmer.

Analysing Iteration in Code

  • When analysing iteration, pay attention to the loop condition, which controls how many times the loop is executed.
  • Check what changes each time through the loop — this might be a variable being updated, values being added to a data structure, and so on.
  • Identify what the final outcome of the iteration is. Is a final value computed? Is a data structure populated?
  • Be mindful of infinite loops — situations where the loop condition will never evaluate to false and the loop will continue without end.
  • Identify where nested loops are used, as they can significantly impact the runtime and complexity of the program.

Applying Informal Code Analysis

  • You can use informal code analysis to predict the outcome of code before running it. This can be a useful exercise for understanding the functionality and getting a more in-depth understanding of code.
  • Being good at informal code analysis helps in debugging - identifying and fixing errors in code.
  • When you get more practice, you should be able to identify bottlenecks, points in the program that may slow it down, or potential bugs in the code.
  • Furthermore, knowing how to analyse code will also help you write better code. You’ll start to see patterns, learn to avoid certain pitfalls, and develop an intuitive understanding for code design and structure.