A signature program in computer programming is a short block of uncompiled source code that is attached to the end of an email or other communication. The signature in an electronic communication is a block of text that is automatically attached to outgoing messages, sometimes to identify the user. When a block of code is included in this area, it is known as a signature program. Most signature programs perform trivial functions that output data or information in a surprising way for the brevity of the actual code. Limitations mean a signature program is not compiled, requiring a curious viewer to compile it to see the results — a task that requires some programming knowledge — meaning most signature programs are mainly viewed by those within the programming community.
One of the elements of a signature program is the way in which it is written. Instead of looking like normal computer programming code, it is often written in a very non-standard abbreviated way through the use of functions, operators and language features that are not often seen. Part of the reason for this is to make the code difficult to read so the program output is not readily apparent, though it also can be done to provide an appearance that is in some way unique. The name for code that has been written so it is intentionally difficult to read is obfuscated code.
Common output for a signature program could be the name of the person who wrote the code or the name of the person sending the message to which it is attached. Graphical or text-based representations of mathematical formulas and recursive operations also are popular. While nearly any output is possible, the source code is usually kept to less than four lines, the traditional maximum length of a signature file.
The actual formatting of the source code can be part of the signature program in that it hints toward the output that might be produced. This can sometimes be done by arranging the source code to form a picture related to the output, or using the letters and symbols in the code to spell out words. This is possible because most programming compilers ignore multiple spaces and line breaks, instead looking only at the actual characters in a line of code.
One additional method that is used to affect the length, functioning and sometimes appearance of the code in a signature program is the use of macros. Macros are a way to assign a piece of valid computer code to a shorter or alternate sequence of characters or symbols. When the macro is placed in the source code later, it is replaced by the compiler with the code it is representing. This cannot only make a signature program shorter but, by using macros with misleading names or that incorporate other macros, the program can become incredibly difficult to read.