Вы находитесь на странице: 1из 17

Motivacin

Sistemas fuertemente tipados


Rsum

Teoras de la Formalizacin de Sistemas de Tipos


Programming Language Type Systems

Daniel Benavides UN-EIDOS

Departamento de Ingeniera de Sistemas e Industrial


Universidad Nacional de Colombia

Seminario ALIFE 2011-I, 1 de Septiembre 2011

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Sistemas fuertemente tipados
Rsum

Agenda

1 Motivacin
Los errores o crash de sistema
Trabajo en semntica de lenguajes

2 Sistemas fuertemente tipados


Trabajo del Compilador
Trabajo a realizar en Java Script

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Compilador vs Mquina vs Sistema operativo vs Programador
Sistemas fuertemente tipados
Trabajo en semntica de lenguajes
Rsum

Los errores de sistema (Crash).


Assembler (sistema corto en LC), Mquinas eficientes,
Sistemas Grandes en LC Problemas del progrmador.
Errores se cuentan por cientos de miles.
Una Ilustracin del tema

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Compilador vs Mquina vs Sistema operativo vs Programador
Sistemas fuertemente tipados
Trabajo en semntica de lenguajes
Rsum

Sistemas de Programacin Quinta generacin


Pocos sucesos desde ~1984 hasta 2008 (p. ej. Computacin
Ubiqua, Celulares, Cloud Computing)

Fig.:
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Compilador vs Mquina vs Sistema operativo vs Programador
Sistemas fuertemente tipados
Trabajo en semntica de lenguajes
Rsum

Celulares Padres de la Revolucin


Sistemas operativos incrustados

http ://www.xrce.xerox.com/Research-
Development/Videos/Newton-Satchel

:
Cambio tecnolgico, mejor rendimiento, se busca crear una nueva
plataforma sin los costos del porttil
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Compilador vs Mquina vs Sistema operativo vs Programador
Sistemas fuertemente tipados
Trabajo en semntica de lenguajes
Rsum

Computacin Ubiqua

Sin las limitaciones de espacio trabajamos bastante cmodos,


con ellas no ?
Todo sistema debe ser eficaz y eficiente, optimziacin de
recursos de energa, revolucin verde

Consideraciones de Seguridad
Sistemas integrados y de bajo acoplamiento (Modulares)
Amplitud de servicios SMS, VoIP, NFC (ej : Cloud Services)
Sistemas Modulares y grandes (ej : Modula-3, Java7, SML,
C ? ?).

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Compilador vs Mquina vs Sistema operativo vs Programador
Sistemas fuertemente tipados
Trabajo en semntica de lenguajes
Rsum

Soluciones en tiempos de crisis

Example
Sistemas de tipo interpretativo con tipos seguros (Java7, Scala, ....)

Example
Ejemplos de sistemas Android : Py Scripting Engine ; IPhone :
Objective-C ; Symbian : Qt/QML-JS.

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Sistema de tipos Seguros (Progress 1/2)

Theorem
Progress : un sistema progresa si a cada computo (parte por parte
p. ej small step operational semantics) bien llega una expresin t 0
o a un valor (t v )

t t0

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Sistema de tipos Seguros (Preservation 2/2)

Theorem
Preservation : si tenemos un sistema bien tipado, entonces se
mantiene as
t: T
t t 0

t0 : T

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Sistemas de Tipos Seguros (Progress+preservation=SAFE


1/3)

Theorem Theorem
Un sistema de programacin se dice Un sistema se dice que es inseguro si
que es seguro (sano) si evita un permite ejecucin arbitraria de cdigo
subconjunto de errores que sacan de sin beneficio de expulsin en
ejecucin con beneficio de manejo ejecucin (untrapped error,
(trapped error, ej : excepcin sin ejemplos : acceder a un arrreglo por
atrapar p. ej : divisin por cero, fuera del tamao, acceder fuera de su
desborde aritmtico/lgico, violacin mbito el valor de una variable, etc).
de segmento, etc.) y que pueden Todo sistema seguro debe garantizar
detectarse en tiempo esttico (p.ej que ninguno de stos ocurran (ej :
acceder a un objeto inexistente runtime error ~30 en Modula-3)
dangling reference) o al ejecutar
(runtime error ~6 en Juno-2).
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Sistemas de Tipos Seguros (Progress+preservation=SAFE


2/3)

Corollary
Un sistema es inseguro si tiene unchecked runtime o trapped error
definidos en los teoremas (ej: s puedo correr alguno haciendo una
excepcin marcada si y slo si su entorno es confinado a cierta
parte de las clulas de la memoria del programa, ej: Modula-3
UNSAFE <MODULE> | <INTERFACE> a nvel de espacio,
segmento o clula de memoria). sto ya que permiten errores
injustificados (ej.:sin o contrasentido en la salida stdout o stderr
respecto del cdigo fuente del programa).

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Sistemas de Tipos Seguros (Progress+preservation=SAFE


3/3)
Examples
SPIN (SO Microkernel para x86 y DEC Alpha) :
Un sistema basado en la confiabilidad de las extensiones en espacio
de kernel con aplicaciones en l (no hay cruce de frontera en
llamadas al sistema. ej : mayor rapidez de ejecucin)
Basado en el Sistema Seguro de tipos de Modula-3 + operador
VIEW + Enlazador cruzado (referenciar INTERFACE
dinmicamente) Ej : lee valores de flujo red en memoria de forma
segura, con mayor rapidez que UNSAFE ; enlazador y cargador
dinmico de MODULEs
Cdigo de lenguaje C corre en espacio de usuario como
aplicaciones, o en espacio de kernel con checked runtime error
congelando el resto de clulas de memoria Ej : drivers, etc.
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Tenemos un entorno de programacin Java Script que ejecuta


cdigo seguro sin rechazar el programa, pero tambin ejecuta malos
programas, entonces tenemos programas con mal comportamiento,
en tal ambiente es un sistema inseguro sino rechaza inseguros.

Examples
Accesos de atributo inexistente de un objeto (method u object),
manejo modularizado, etc.

Example
Solucin Parcial : Gradual Typing

Examples
Se marcan los tipos y se verifican o se ignoran (medida de
seguridad variable)
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Sistemas fuertemente tipados Trabajo del Compilador
Rsum

Definition
Un sistema de tipos lambda se puede traducir total o parcialmente
interpretar con mtodos SMT (Satisfaction Modulo Theory)
usando Lgica Predicativa.

Fact
La mquina de Turing es equivalente al Clculo Lambda en
expresividad (comparten la indecidibilidad)

Definitions
ESC (Extended Static Checker) es una tcnica para interpretar
(simular) un sistema de tipos
ESC tiene en su corazn una abstraccin procedimental
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Sistemas fuertemente tipados
Rsum

Definition
Definicin formal de Modula-3 : en una espacio funcional, un
procedimiento de parmetros de tipo X , con precondiones 0
modifica las clulas de memoria S con salida de tipo Y y
post-condiciones 1
X , 0 S Y , 1

Definitions
Un sistema formal referencia de definicin de matemticas es capaz
de albergar en s las teoras de anlisis matemtico con ciertas
restricciones, un sistema de sos llamado de Tipos Variables (VT
por sus suglas en Ingls)
[2]puede (expresar) ser expresado en el clculo Lambda.
Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin
Motivacin
Sistemas fuertemente tipados
Rsum

Rsum

Los principios de tipos de datos de lenguajes permiten manejar


los valores de las variables ordenadamente.
Un sistema de tipos seguro es cualquiera que permita correr
los programas que son definidos dentro del lenguaje

Perspectivas
Problema abierto
Solucin ineficiente en sistemas largos (cdigo evolucionando
naturalmente inmanejable)

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin


Appendix Bibliografa

Lectures complementarias I

Treleaven and Lima


, Japans Fifth Generation Computer Systems,
Computer, vol. 15, no. 8, pp. 79-88, 1982.
Jochen Kothe and Jochen Kothe, Gttinger
Digitalisierungszentrum : Pageview. [Online]. Available :
http ://gdz.sub.uni-
goettingen.de/index.php ?id=11&PPN=GDZPPN00254086X&L=1.
[Accessed : 05-Sep-2011].

Daniel Benavides UN-EIDOS Sistemas de Tipos para Lenguajes de Programacin

Вам также может понравиться