Action Semantics is a framework for the formal description<br />of programming languages. Its main advantage over other frameworks<br />is pragmatic: action-semantic descriptions (ASDs) scale up smoothly to<br />realistic programming languages. This is due to the inherent extensibility<br />and modifiability of ASDs, ensuring that extensions and changes to<br />the described language require only proportionate changes in its description.<br />(In denotational or operational semantics, adding an unforeseen<br />construct to a language may require a reformulation of the entire description.)<br />After sketching the background for the development of action semantics,<br />we summarize the main ideas of the framework, and provide a simple<br />illustrative example of an ASD. We identify which features of ASDs<br />are crucial for good pragmatics. Then we explain the foundations of<br />action semantics, and survey recent advances in its theory and practical<br />applications. Finally, we assess the prospects for further development<br />and use of action semantics.<br />The action semantics framework was initially developed at the University<br />of Aarhus by the present author, in collaboration with David Watt<br />(University of Glasgow). Groups and individuals scattered around five<br />continents have since contributed to its theory and practice.