Charles Carroll Morgan (nacido en 1952) es un informático estadounidense que se mudó a Australia cuando era un adolescente. Allí completó su educación (secundaria, universidad, varios años en la industria), incluido un doctorado en Filosofía (Ph.D.) de la Universidad de Sídney , y luego se mudó al Reino Unido a principios de la década de 1980. En 2000, regresó a Australia.
Durante los años 1980 y 1990, Morgan trabajó en el Laboratorio de Computación de la Universidad de Oxford en Inglaterra como investigador y profesor en el área de métodos formales , y fue miembro del Pembroke College. Influenciado por la notación Z de Jean-Raymond Abrial , escribió Programming from Specification como un intento de combinar los aspectos de especificación de alto nivel de Z, con los rigurosos métodos de derivación de programas informáticos de Edsger W. Dijkstra . Su tratamiento se centró en construcciones de programas elementales para hacer que el material fuera accesible a los estudiantes universitarios en sus primeros años. [1] Algunas de las ideas allí fueron incorporadas más tarde como elementos del Método B por Abrial, cuando Abrial regresó a Oxford en la segunda mitad de la década de 1980.
Junto con Annabelle McIver , Morgan escribió posteriormente Abstracción, refinamiento y prueba para sistemas probabilísticos , en el que se abordaron los mismos temas para programas probabilísticos. [2] Su texto más reciente (con otros cinco) es La ciencia del flujo de información cuantitativa , en el que se ampliaron aún más los mismos temas, a la seguridad del programa. [3]
Morgan es ahora profesor en la Escuela de Ciencias Informáticas e Ingeniería de la Universidad de Nueva Gales del Sur , [4] investigador principal sénior en Trustworthy Systems [5] y profesor honorario en la Universidad Macquarie, [6] las tres en Australia. Sus principales intereses de investigación son los modelos probabilísticos para la seguridad informática y la concurrencia . Es un conocido defensor de un enfoque formalizado para el desarrollo de programas llamado cálculo de refinamiento . [1] Es autor de numerosos artículos.
Está involucrado en el desarrollo de estándares internacionales en programación e informática, como miembro activo de varios grupos de trabajo de la Federación Internacional de Procesamiento de Información (IFIP), [7] incluido el Grupo de Trabajo 2.1 de la IFIP sobre Lenguajes Algorítmicos y Cálculos, [8] que especificó , mantiene y soporta los lenguajes de programación ALGOL 60 y ALGOL 68. [ 9]