
Introduction to Programming Languages
Arvind Kumar Bansal
- Editorial
- CRC Press
- Año
- 2014
- Páginas
- ~624
- Nivel
- Básico
De qué trata
Tratado exhaustivo sobre los fundamentos teóricos y las decisiones de diseño de los lenguajes de programación, escrito por Arvind Kumar Bansal (Kent State University) para CRC Press. Diseñado para cursos universitarios de nivel universitario inicial a intermedio, su propósito formativo es liberar al estudiante de la fijación sintáctica con un lenguaje concreto (como C++, Java o Python) para dotarlo de una comprensión abstracta de cómo funcionan los sistemas de tipos, la semántica formal y los entornos de ejecución en cualquier familia de lenguajes. Requiere haber cursado programación orientada a objetos o estructurada previa y nociones de estructuras de datos discretas.
El temario aborda el análisis sintáctico y semántico mediante gramáticas BNF y árboles de derivación, sistemas y teoría de tipos (tipado estático vs. dinámico, inferencia, equivalencia y polimorfismo paramétrico y por subtipado), así como la gestión interna de memoria y entornos de ejecución (marcos de activación en pila, registros y recolectores de basura en el montículo). Seguidamente, disecciona y compara en profundidad los grandes paradigmas de cómputo y sus mecanismos representativos: programación imperativa y estructurada (C, Pascal), programación orientada a objetos (Java, C++, Smalltalk), programación funcional y cálculo lambda (Lisp, Scheme, ML, Haskell), y programación lógica orientada a restricciones (Prolog). Adicionalmente, el texto destaca por incluir paradigmas avanzados frecuentemente omitidos en textos introductorios: programación concurrente y distribuida (hilos, monitores, paso de mensajes y el modelo CSP de Hoare), lenguajes de scripting y multimedia para la web (PHP, Python, JavaScript), lenguajes síncronos y modelos de programación orientados a agentes.
La práctica del texto se estructura en estudios comparativos de código entre distintos lenguajes y un exhaustivo conjunto de problemas conceptuales y de modelado al final de cada capítulo que desafían a razonar sobre la semántica de evaluación y la seguridad de tipos. Su aportación crucial es formar a desarrolladores e investigadores capaces de aprender o diseñar cualquier lenguaje nuevo en pocos días identificando sus mecanismos subyacentes; no se trata de un tutorial para aprender a programar aplicaciones comerciales de inicio a fin en un lenguaje específico, sino de una obra teórica de base que conviene estudiar tras haber experimentado previamente con al menos dos lenguajes de programación dispares.
- Lenguajes de programación
- Semántica y sintaxis
- Sistemas de tipos
- Programación funcional
- Programación lógica
- Programación orientada a objetos
- Concurrencia y CSP
- Gestión de memoria
- Prolog
- Haskell
- Entornos de ejecución
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

