Concept programming is a style of computer programming, also known as a programming paradigm, that aims to re-create the concepts in the programmer's mind as closely as possible within the program itself. The idea behind concept programming is that every piece of the code should mean something and should clearly represent what action the programmer wants that piece of the code to perform. Anything from needing an image to appear on screen to wanting an error message to display when an event occurs is considered a concept. Parts of computer code such as a semicolon that tells a line of code where to end are not concepts because they are there only to help the computer function and do not represent ideas from the programmer's mind.
The paradigm of concept programming is not a programming language itself. Rather, it's a method for evaluating other programming languages to identify their flaws. The end goal is to make the physical computer program as identical to the programmer's original, abstract idea as possible.
In concept programming, the programmer focuses on semantics and syntax. Semantics are how the program is expected to behave and syntax is how the programmer imagines it should be written. For example, in a Java program the code A+B might show addition between A and B. This program has good syntax because it closely resembles the programmer's original concept of addition. If, however, upon execution the program creates an error when trying to add A and B, then the program has poor semantics because it does not produce the expected result.
When writing code based on concept programming techniques, the programmer first determines the concepts the program needs to function. If the programmer was creating a virtual calculator, for example, she would likely imagine the concepts of being able to add, subtract, multiply, and divide. She would also imagine some way to input the data, such as using a keyboard, and a way to view the results on the screen. These ideas make up the concepts of the program. She might also consider what color and how big the calculator should be, but these are not concepts since they are not necessary for the application to run.
After the programmer finishes mapping out her concepts, she finds the best way to represent those concepts in the computer code. She seeks to write out code that closely matches her idea in terms of semantics and syntax. She may use pieces of pre-existing code, such as A+B, or create her own code to better represent her concepts.
As of mid-2011, XL is the only programming language created based on the concept programming paradigm. It aims to create flexible programming rules and syntax that match how a programmer thinks. It allows programmers to concentrate on what they want to create instead of worrying about non-concept items like ending a line of code with a semicolon.