Eine formale Sprache ist eine abstrakte Sprache, bei der im Unterschied zu natürlichen Sprachen oft nicht die Kommunikation im Vordergrund steht, sondern die Definition und Anwendung formaler Systeme im engeren Sinn und der Logik im weiteren, allgemeinen Sinn. Eine formale Sprache besteht aus einer bestimmten Menge von Symbolketten (im Allgemeinen Zeichenketten) („Wörter“ der Sprache), die aus einem Zeichen-/Symbolvorrat („Alphabet“, Grundsymbole) zusammengesetzt werden können. Während die Logik die Begrifflichkeit „Formale Sprache“ untersucht, finden formale Sprachen z. B. in der Mathematik, in der Linguistik und der theoretischen Informatik eine praktische Anwendung.
Formale Sprachen eignen sich zur (logisch) präzisen Beschreibung des Umgangs mit Zeichenketten. So können zum Beispiel Datenformate oder ganze Programmiersprachen spezifiziert werden. Zusammen mit einer formalen Semantik erhalten die definierten Zeichenketten eine (logische) Bedeutung. Bei einer Programmiersprache kann damit einer Programmieranweisung (als Teil der formalen Sprache) ein eindeutiges Maschinenverhalten (als Teil der Semantik) zugeordnet werden.
Aufbauend auf formalen Sprachen können aber auch Logikkalküle definiert werden, mit denen mathematische Schlüsse gezogen werden können. In Verbindung mit formal definierten Programmiersprachen können Kalküle helfen, Programme auf ihre Korrektheit zu überprüfen.