De 1964 à 1967, il a travaillé dans le groupe IFIP2.1 dont la tâche était d'améliorer le langage ALGOL-60. Ce qui aboutit à l'ALGOL-68. La proposition de Wirth était moins ambitieuse, c'était juste une dérivation de l'ALGOL-60 (qui fut réalisé ensuite sous le nom d'ALGOL-W).
De 1968 à 1972, déçu par Algol X devenu Algol 68, il travaille - seul cette fois-ci - à Zurich sur son langage Pascal, basé sur ses travaux précédents de l'ALGOL-W.
Pascal revient un peu en arrière par rapport à Algol-W, dont chaque expression ramenait une valeur. Il est par ailleurs à l'époque surtout orienté, en matière de traitement de caractères, sur le CDC6600 qui travaille avec des mots de 60 bits regroupant 10 caractères de 6 bits; ce Pascal-là n'est pas, et de loin, Turbo Pascal).
Wirth écrit avec Urs Amman un premier compilateur pour le CDC 6600 de l'EPF de Zurich, et en donne le source à qui le lui demande, en particulier à l'Université Laval.
De 1972 à 1974, il met au point le PCode, un code intermédiaire généré par un compilateur (Pascal) et exécutable sur n'importe quelle machine dotée de l'interpréteur adéquat (le principe repris par Java). Ce P-code sera la base du Pascal UCSD (University of California San Diego).
De 1973 à 1976, il travaille sur le langage objet Modula, un dérivé simplifié du Pascal comportant des ajouts en revanche en matière de modularité (d'où le nom du langage).
De 1977 à 1981, il travaille sur un projet de station de travail puissante, dénommée Lilith. Dans le même temps, il met au point la deuxième version de Modula, Modula-2 qui est aussi le système d'exploitation destiné à la machine Lilith.
En 1984, il reçoit le Prix Turing.
En 1988, il met au point le langage Oberon, un dérivé de Modula avec la notion d'export des procédures. Une procédure est utilisable par n'importe quel programme. Comme Modula-2, Oberon comprend un système d'exploitation complet.
En 1995, il énonce pour la première fois ce qui deviendra la Loi de Wirth.