A framework provides the structure for building a program, including what can be built and how parts interrelate. It includes actual programs, programming interfaces, and tools. Common examples are resource description, internet business, sender policy, and Zachman frameworks. Frameworks are categorized by programming language such as Perl, PHP, Java, Python, Ruby, ColdFusion, and Asp.Net.