Abstract
Supervisory control is a control scheme to restrict the behavior of a discrete event system such that a given logical control specification is satisfied. Its unique feature is dealing with uncontrollable events that cannot be disabled using a controller, called the supervisor. In this article, we not only present basic theoretical results on supervisory control including the existence condition of a supervisor based on the controllability of languages and a method for synthesizing a maximally permissive supervisor but also discuss the effect of the existence of uncontrollable events and the issue of modeling the system and specification.