A platform usually means an environment in which a piece of software is designed to run. So it often means the operating system (e.g. windows or Linux), but sometimes the architecture (x86 might be a platform, or the java virtual machine).
Platforms may also include:
- Embedded systems
- Modern browsers (e.g., chrome)
- Twitter and Facebook
- Extending the idea of a software framework, these allow application developers to build software out of components hosted by the provider, with internet communication linking them together
- Java virtual machine
- Window/Mac/Linux OS
A framework is usually a collection of functions or classes, so it is very similar to a library, except that Control is Inverted. (Inversion Of Control is the core characteristic of what constitutes a framework.) That is, your code calls a library, but a framework calls your codes.
Usually, a framework comes with a collection of tools: software, methodology, and design pattern to provide a way of building applications (or specific layers of an application).