This document summarizes the K Framework, a tool-supported framework for defining programming language semantics using rewrite rules. It is a joint project between groups at UIUC and UAIC. The K Framework has been used to give formal semantics to languages like Java, Verilog, and C. It provides tools for state-space exploration, execution, and deductive program verification based on the semantic definitions. The document advocates for formal semantics as the foundation for language implementation and analysis tools.