The information is copied from Anatomy of a Drupal theme.

.info (required)
All that is required for Drupal to see your theme is a “.info” file. Meta data, style sheets, JavaScripts, block regions and more can be defined here. Everything else is optional.
template files (.tpl.php)
These templates are used for the xHTML markup and PHP variables. In some situations they may output other types of data –xml rss for example. Each .tpl.php file handles the output of a specific themable chunk of data, and in some situations it can handle multiple .tpl.php files through suggestions.
template.php
For all the conditional logic and data processing of the output, there is the template.php file. It is not required, but to keep the .tpl.php files tidy it can be used to hold preprocessors for generating variables before they are merged with the markup inside .tpl.php files. Custom functions, overriding theme functions or any other customization of the raw output should also be done here.
Sub-themes
On the surface, sub-themes behave just like any other theme. The only differences is that they inherit the resources from their parent themes. To create one, a “base theme” entry inside the .info file is needed. From there it will inherit the resources from its parent theme.
Posted by stiengfoto