0% encontró este documento útil (0 votos)
118 vistas4 páginas

Programación Genérica

1. La programación genérica es una técnica que define algoritmos reusables e independientes de los datos sobre los que operan. 2. Estos algoritmos genéricos son normalmente utilizados sobre agregados de elementos como pilas, colas y listas. 3. La programación genérica permite escribir programas de forma más centrada en los algoritmos que en los datos específicos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
118 vistas4 páginas

Programación Genérica

1. La programación genérica es una técnica que define algoritmos reusables e independientes de los datos sobre los que operan. 2. Estos algoritmos genéricos son normalmente utilizados sobre agregados de elementos como pilas, colas y listas. 3. La programación genérica permite escribir programas de forma más centrada en los algoritmos que en los datos específicos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Programación genérica

Los programas genéricos (también llamados politípicos) son programas parametrizados en la


estructura de los datos que manipulan. Este mecanismo de parametrización permite escribir
programas que pueden trabajar sobre una importante clase de diferentes estructuras de datos,
liberando así al programador de escribir código adicional de similar funcionalidad cada vez que se
quiera computar el programa sobre una nueva estructura de datos. Por ejemplo, programas
genéricos, tales como analizadores sintácticos, pretty-printers, o funciones para comparar
estructuras de datos, pueden ser escritos una sóla vez y luego especializados para trabajar sobre
diferentes estructuras de datos sin esfuerzo adicional por parte del usuario. Esto simplifica
enormemente el trabajo de construcción y mantenimiento de los sistemas de software ya que los
programas se pueden adaptar automáticamente a cambios en la representación de los datos,
reduciendo de esta manera el impacto de los cambios.

Funciones Genericas

Polimorfismo parametrico

Las funciones polim´orficas trabajan exactamente de la misma manera sobre todas las instancias
del tipo polim´orfico.

length :: [a] -> Int length [] = 0

length (x:xs) = 1 + length xs concat :: [[a]] -> [a] concat [] = [] concat (x:xs) = x ++ concat xs Prog.
Gene´rica - InCo 3

Polimorfismo ad-hoc (sobrecarga) En Haskell, la sobrecarga es manejada mediante type classes.


class (Eq a, Show a) => Num a where (+) :: a -> a -> a ... Las instancias de una clase son definidas
separadamente y pueden contener algoritmos completamente diferentes. instance Num Int where
(+) = ... instance Num Float where (+) = .

La programación genérica es una técnica que define algoritmos:

1. reusables

2. implementadados como entidades de primer nivel(clases)

3. independientes de los datos sobre los que opera Normalmente los algoritmos genéricos son
utilizados sobre agregados de elementos (pilas, colas, listas, conjuntos. …)

(Generic programming). La programación genérica es un estilo de programación más centrada en


los algoritmos que en los datos.

La idea es generalizar lo más posible las funciones para que puedan ser empleadas múltiples
veces. Esto se puede lograr parametrizando lo más posible los algoritmos.
La programación genérica apareció en los setenta en lenguajes como CLU y Ada, y luego fue
adoptada por muchos lenguajes orientado a objeto como BETA, C++, D, Eiffel, Java, etc.
La programación genérica es implementada y soportada de formas diferentes en cada lenguaje de
programación.
Internacionalización

La economía mundial se encuentra actualmente en uno de los momentos de mayor dinamismo y


cambio. La unificación de los mercados, la estandarización de los productos, la homogeneización
de los gustos y las necesidades de los consumidores en el mundo desarrollado, los nuevos canales
de comunicación, distribución y venta, y la cantidad y calidad de productos y servicios existentes,
marcan una tendencia que lleva a la internacionalización de las empresas.

La internacionalización de la empresa se puede definir como el conjunto de actividades que la


empresa desarrolla fuera de los mercados que constituyen su entorno geográfico natural.

Razones de la Internacionalización:

Seguir creciendo en su sector, dado que el mercado interno se ha quedado pequeño

Aprovechar la capacidad ociosa de fabricación

Exportar porque el mercado externo es el mercado natural por escasez de estos productos

Diversificar el riesgo de operar en un solo mercado

Ganar prestigio en el mercado interno

Compensar una crisis en el mercado interno

Acceder a un mercado más grande (mayor volumen) y así poder competir en un sector donde
otras firmas obtienen economías de escala a nivel mundial

Ganar competitividad al luchar con competidores más eficientes

Por la dura competencia en el mercado interno o como reacción ante el ataque de un competidor
internacional que amenaza su posición

Porque el mercado internacional es más rentable

Ventajas de la Internacionalización:

Producción

Utilizar toda la capacidad productiva

Economías de escala

Ventaja Competitiva

En los factores de producción (mano de obra, materias primas o energía)

Racionalización óptima de la producción

Los mercados globales son lucrativos. Vender tus aplicaciones en todo el mundo genera muchas
rentas e incrementa la cuota de mercado. Para tener éxito en el mercado internacional tus
aplicaciones deben soportar idiomas locales y convenciones para el formateo de datos. Tus
clientes no esperarán menos de tí. Por ejemplo, los Norteamericamos esperan sus mensajes en
Inglés, las fechas en el formato mm/dd/yy, y la moneda expresada en dólares ($). Los Alemanes
querrán sus mensajes en Alemán, las fechas en el formato dd.mm.yyyy, y la moneda expresada en
Marcos alemanes (DM).

http://www.siecan.org/index.php?option=com_content&view=article&id=360%3Ainternacionaliza
cion&Itemid=120&lang=es

http://programacion.net/articulo/internacionalizacion_de_programas_java_140

https://www.fing.edu.uy/inco/cursos/proggen/Transparencias/IntroduccionX2.pdf

[1] R. Backhouse, P. Jansson, J. Jeuring, and L. Meertens. Generic Programming - An Introduction -.


In Advanced Functional Programming, Lecture Notes in Computer Science 1608. Springer-Verlag,
1999.

[4] G. Hutton. A tutorial on the universality and expressiveness of fold. Journal of Functional
Programming, 9(4):355-372, 1999.

Existen diferentes definiciones para la palabra internacionalización. La que damos aquí es una
definición operativa de alto nivel para usar con los materiales de la Actividad de
internacionalización del W3C. Algunas personas utilizan otros términos para referirse al mismo
concepto, por ejemplo, "globalización".

La internacionalización es el diseño y desarrollo de un producto, una aplicación o el contenido de


un documento de modo tal que permita una fácil localización con destino a audiencias de
diferentes culturas, regiones o idiomas.

La palabra internacionalización a veces se escribe "i18n", donde 18 es la cantidad de letras entre la


i y la ene.

La internacionalización generalmente implica:

Un modo de diseño y desarrollo que elimine obstáculos a la localización o la distribución


internacional. Esto incluye cuestiones tales como (entre otras) usar Unicode o asegurar, allí donde
corresponda, un correcto tratamiento de las codificaciones de caracteres anticuadas; controlar la
concatenación de cadenas; o evitar que la programación dependa de valores de cadenas
pertenecientes a la interfaz de usuario.
Habilitar características que tal vez no sean usadas hasta el momento de la localización. Por
ejemplo, añadir en la DTD etiquetas para habilitar el texto bidireccional o la identificación de
idiomas. O hacer la CSS compatible con texto vertical u otras características tipográficas ajenas al
alfabeto latino.

Preparar el código para hacer frente a las preferencias locales, regionales, lingüísticas o culturales.
Por lo general, esto supone incorporar características y datos de localización predefinidos a partir
de bibliotecas existentes o de las preferencias del usuario. Algunos ejemplos son: formatos de
fecha y hora, calendarios locales, formatos y sistemas de números, ordenamiento y presentación
de listas, uso de nombres personales y formas de tratamiento, etc.

Separar del código o contenido fuente los elementos localizables, de modo que puedan cargarse o
seleccionarse alternativas localizadas según determinen las preferencias internacionales del
usuario.

Obsérvese que esta lista no incluye necesariamente la localización del contenido, la aplicación o el
producto hacia otro idioma; se trata más bien de prácticas de diseño y desarrollo que facilitan esa
migración en el futuro, pero que también pueden tener una utilidad considerable aunque la
localización jamás se produzca.

Se entiende por localización la adaptación de un producto, una aplicación o el contenido de un


documento con el fin de adecuarlos a las necesidades (lingüísticas, culturales u otras) de un
mercado destinatario concreto (una "localidad" o "local" [locale]).

La palabra localización a veces se escribe "l10n", donde 10 es la cantidad de letras entre la ele y la
ene.

Aunque se la considera a menudo sinónimo de traducción de la interfaz de usuario y de la


documentación, la localización suele ser un asunto considerablemente más complejo, que puede
implicar la adaptación del contenido en relación con:

1. formatos numéricos, de fecha y de hora;


2. uso de símbolos de moneda;
3. uso del teclado;
4. algoritmos de comparación y ordenamiento;
5. símbolos, iconos y colores;
6. texto y gráficos que contengan referencias a objetos, acciones o ideas que, en una cultura
dada, puedan ser objeto de mala interpretación o considerados ofensivos;
7. diferentes exigencias legales;
8. y muchas otras cuestiones.

También podría gustarte