3. ScreenPass: Secure Password Entry via OCR and Taint-tracking
3.1 Introduction
U
U
2.1 La variedad de concepciones acerca del Codiseño.
U
U
• decantan por propuestasde descripción formales, como LOTOS [LCLSS6],
U
o por lenguajes de reciente creación, como Java [HeOlS7J.U
No obstante, todavía es normal el hecho de encontrar queU
prácticamente la totalidad de los sistemas existentes proponen su propiométodo de especificación con particularidades únicas, dependiendo de lo
U
que se esté tratando de expresar. Esto debe dar una idea de la gran • heterogeneidad del Codiseño, aun partiendo desde sus etapas másU tempranas.
U
Sin embargo, no es solamente la reciente aparición de esta • metodología la que coníleva este tipo de situaciones, sino también el
U momento en el que ha surgido. Asi, aún existen distintos aspectos de la
U
Síntesis de Alto Nivel para los que todavía no se ha propuesto una solución realista, o sobre los que es posible realizar un conjunto de optimizaciones.U
En estas circunstancias, cuando existian puntos difusos en las bases
• de la síntesis automática, se empezaron a tratar problemas con un grado de
U
abstracción superior, y por lo tanto con la necesidad de utilizar sobre ellosU
metodologías más complejas y elaboradas. Pero para desarrollar estasU
nuevas técnicas, se han debido realizar en muchos casos suposicionesU
• acerca de aspectos más básicos, todavía no resueltos, para poder progresar
• hacia problemas más complejos.
U
Son precisamente esas suposiciones acerca de características aúnU oscuras, las que han producido multitud de aproximaciones distintas, cada
U
U
una de ellas simplificando aquellos puntos más convenientes para el• desarrollo de la propia teoría. No se está criticando el hecho de que cada
U
cual trate de amoldar las especificaciones y el entorno de trabajo lo másU
posible para favorecer una aproximación propia. Realmente, la ciencia debe U avanzarbasándose en el príncipio de simplicidad pmgresíva.U
U
Asimismo, es favorable el comenzar a desarrollar nuevas metodologíasU
de trabajo, como el Codiseño, antes de fijar todos y cada uno de los puntosU
U
-41-Capítulo 2. Oelimitación del problema deCediseño: Consideraciones previas.
de la Síntesis de Alto Nivel. No en vano, siempre debe existir un cierto germen teórico inicial que vaya por delante del grueso de aplicaciones prácticas que se desarrollen, ya que esta exploración más allá de los límites del conocimiento que se produce en cada instante es el verdadero motor que apoya las sucesivas innovaciones. No obstante, todos estos puntos, sin duda positivos, tienen un efecto colateral de dispersión de las teorías, que
hace difícil estudiar el Codiseño como una técnica unificada.
Otro de los factores que influyen en la variedad de esta metodología es su propia estructura en sí. En un principio, puede parecer que el paso desde un diseño automático de circuitos hardware a una sintesis de sistemas, es sencillamente la extensión de unos ciertos problemas a otros de una mayor complejidad. Sin embargo, este paso no conlíeva sólo un cambio en el tamaño de los objetos que se tratan, sino que existen profundas diferencias
conceptuales entre ambas aproximaciones.
Así, una de las grandes dificultades que encierra un sistema es su
propia abstracción. De hecho, un sistema puede ser casi cualquier entidad del mundo real, y es esa falta de precisión y definición la que luego se va
transmitiendo a lo largo de todo el proceso de Codiseño.
No solamente la propia ambigúedad del sistema hace dificil la regularización de la estructura, sino que las circunstancias que lo rodean ayudan a descontrolar aún más la claridad del proceso. De esta manera, las situaciones sobre las que es posible aplicar el proceso de Codiseño pueden
ser muy dispares.
En consecuencia, y como ya se comentó en el capítulo introductorio, la versatilidad de disponer de dos subsistemas diferentes y complementarios,
como son el hardware y el software, hace de esta metodología una técnica
muy potente para abordar problemas tan distintos como el abaratamiento de
un circuito o la mejora de rendimiento de un código que se ejecuta sobre un procesador estándar.
U
U
e
U
2.1 La variedad de concepcIones acerca del Codiseño.
e
U
• Además de esto, el hecho de que todas las entidades pertenecientes al
U
campo de la Informática se cataloguen como hardware o software, hace que • casi cualquier problema de síntesis se pueda abordar mediante el Codiseño.U
De esta manera, se ha propuesto en este ámbito la generación automática • de ASIPs [B15H94][HuDe94a][HuDeE4b][SAHN94],en la que la decisión
U
acerca de la arquitectura viene dada por la elección de la parte hardware, yU
la especificación del repertorio de instrucciones, por la parte software.u
Una razón más para comprender la complejidad de este proceso, esU
que el rápido crecimiento del Codiseño ha hecho que se dispare el número • de metodologías presentadas de una manera espectacular, lo que ha
U
llevado a la dificultad para adquirir los puntos positivos y ventajas de los• trabajos ajenos. Esto ha conllevado, en un principio, el crecimiento de
U
numerosas deas en paralelo, generando una gran diversidad deU
U
aproximaciones acerca de los mismos conceptos.• Con todo lo comentado hasta aquí, parece clara la necesidad de
U
centrar el presente trabajo de Codiseño, afin de evitar posibles confusionescon otras tendencias de la misma metodolog Ja. Los siguientes apartados