Академический Документы
Профессиональный Документы
Культура Документы
Agenda
1 Motivacin
Los errores o crash de sistema
Trabajo en semntica de lenguajes
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
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
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 ? ?).
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.
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
Theorem
Preservation : si tenemos un sistema bien tipado, entonces se
mantiene as
t: T
t t 0
t0 : T
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
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).
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
Perspectivas
Problema abierto
Solucin ineficiente en sistemas largos (cdigo evolucionando
naturalmente inmanejable)
Lectures complementarias I