Académique Documents
Professionnel Documents
Culture Documents
GRUPO: BR
COMERCIO ELECTRONICO
En el EDI, las interacciones entre las partes tienen lugar por medio de aplicaciones
informáticas que actúan a modo de interfaz con los datos locales y pueden intercambiar
información comercial estructurada. El EDI establece cómo se estructuran, para su posterior
transmisión, los datos de los documentos electrónicos y define el significado comercial de
cada elemento de datos. Para transmitir la información necesita un servicio de transporte
adicional (por ejemplo, un sistema de tratamiento de mensajes o de transferencia de
ficheros).
Debe destacarse que el EDI respeta la autonomía de las partes involucradas, no impone
restricción alguna en el procesamiento interno de la información intercambiada o en los
mecanismos de transmisión.
NORMAS DE SINTAXIS:
Básicamente, las normas EDI proporcionan las reglas de sintaxis que definen los
documentos electrónicos estructurados (llamados mensajes EDI) y un número cada vez
mayor de mensajes EDI acordados internacionalmente.
El módulo Ephos sobre EDI se basa en las normas y documentos desarrollados por las
Naciones Unidas y recogidos en "ISO 9735 - Intercambio Electrónico de Datos para la
Administración, Comercio y Transporte (EDIFACT) - Reglas de aplicación de la sintaxis" (en
29735). Si bien por razones históricas, en diferentes dominios regionales o sectoriales se
utilizan otras reglas de sintaxis (no normalizadas), EDIFACT es la única sintaxis normalizada.
SERVICIOS EDI:
Como ya mencionamos anteriormente EDI es el intercambio electrónico de documentos
estandarizados, a través de redes de telecomunicaciones, entre aplicaciones informáticas de
empresas relacionadas comercialmente. El EDI sustituye el soporte papel de los
relacionadas comercialmente. El EDI sustituye el soporte papel de los documentos
comerciales más habituales (órdenes de compra, remito, factura, lista de precios, etc.) por
transacciones electrónicas con formato normalizados y acordados previamente entre los
usuarios del servicio.
Este servicio, a diferencia del correo electrónico, relaciona aplicaciones informáticas que
residen en las computadoras de las distintas empresas. Por lo tanto, el intercambio de
información se realiza entre aplicaciones informáticas y no entre personas.
PRINCIPALES BENEFICIOS:
EDI sin duda nos ofrece una amplia gama de oportunidades de trabajo y beneficios para
nuestra empresa entre los que se destacan:
* Agilización de procesos comerciales
* Importante disminución de errores en los documentos
* Disminución de stocks, debido a la facilidad de aplicación de técnicas "Just-in-Time"
* Ahorro de costos de administración
* Mejora de la competitividad de la empresa que lo adopta
COMPONENTES DE EDI:
EDI cuenta con algunos componentes que a continuación se describen uno a uno.
• CENTRO DE COMPENSACIÓN:
La función básica del Centro de Compensación es la de recibir, almacenar y reenviar a sus
destinatarios los documentos comerciales que los usuarios del servicios intercambian. Así, se
asegura la integridad y confidencialidad de la información. En él cada empresa tiene
asignado un buzón electrónico, a través del cual el usuario recibe y recupera la información
que sus interlocutores comerciales le envían. La plataforma hardware del Centro es "Fault
Tolerant", lo cual garantiza la plena disponibilidad del servicio: 24 horas por día, 365 días del
año.
Los aspectos de seguridad tales como: control de acceso, suministro de energía eléctrica,
etc. han sido especialmente cuidados, con el objeto de garantizar a los usuarios la plena
integridad y confidencialidad de su información.
Los clientes sólo necesitan realizar una conexión física para intercambiar documentos con
todos sus interlocutores, circunstancia que facilita el uso diario del Servicio. Además de esta
simplificación introducida por el centro Servidor, existe otra serie de ventajas, como las
siguientes:
* Una sola conexión sirve para enviar a TODOS los destinatarios y
recibir de TODOS los remitentes
* Alta disponibilidad - Confidencialidad absoluta
* Integridad de datos implícita en los protocolos utilizados
* Mantiene y facilita control de documentos.
• RED DE TELECOMUNICACIONES:
Las empresas usuarias del servicio tiene acceso al Centro de Compensación a través de la
red Terrestre y/o Satelital de STARTEL. El ingreso a la misma podrá ser por medio de
accesos directos (X.25, X.28) o por la red telefónica conmutada al centro más cercano
(acceso RAC X.28). La elección del vínculo se determina en función del tráfico que las
empresas necesitan cursar.
Los accesos a la red terrestre con que cuenta el Centro de Compensación tiene la facilidad
de cobro revertido. Es decir, los clientes que se comunican con el Centro no abonan el tráfico
generado en la Red.
El protocolo utilizado es el OFTP (Odette File Transfer Protocol), el cual fue diseñado
especialmente para intercambios EDI y es en la actualidad el de mayor difusión.
ESTACIÓN DE USUARIO:
La estación de trabajo es la herramienta software que permite realizar la conexión del
sistema informático de cada Cliente con el Centro de Compensación. La misma cubre las
siguientes funciones:
* Comunicaciones
* Traducción de mensajes al formato estandarizado
* Interface con las aplicaciones del sistema informático del Cliente
* Entrada manual de datos e impresión de documentos recibidos
El equipo necesario para soportar la Estación de Trabajo, en su configuración básica, es una
computadora AT, un modem compatible Hayes y una conexión telefónica.
¿CUÁNDO USAR EL EDI?
Generalmente, se utiliza el EDI cuando:
• Las partes involucradas en el intercambio son autónomas y comparten un
entendimiento predefinido, claro y común sobre los negocios y servicios a utilizar.
• La información a intercambiar puede mapearse sobre mensajes normalizados.
Debe destacarse que aunque no se disponga de mensajes normalizados para todas las
aplicaciones, ello no debe impedir la utilización del EDI. En la Sección se proporcionan
directrices o guías para el diseño de nuevos mensajes EDI.
Un uso típico del EDI es la automatización de los intercambios entre un departamento y una
organización externa (por ejemplo, una compañía suministradora) o entre dos grandes
departamentos de la misma Administración, cada uno de ellos dotado con su propio sistema
de información y diferentes formas de representar la misma información. No obstante, dentro
de un mismo departamento pueden existir unidades que tienen sus propios dominios de
aplicación implementados sobre diferentes sistemas informáticos, y necesitan automatizar el
intercambio de datos mediante el EDI.
La existencia de conjuntos de mensajes acordados internacionalmente es el elemento clave
para la automatización de los procedimientos administrativos o comerciales. Como se
indicará posteriormente en el Escenario 4, el número actual de mensajes normalizados o en
fase de borrador, abarca una extensa área de aplicaciones relevantes para las
Administraciones Públicas.
La introducción del EDI debería decidirse teniendo en cuenta los siguientes aspectos:
• El volumen de documentos comerciales/administrativos intercambiados.
• El actual porcentaje de error en el tratamiento de documentos sobre papel.
• El coste del tratamiento y mantenimiento de documentos sobre papel.
• El factor tiempo (si es crítico o no).
• El valor estratégico asignado al EDI en términos de beneficios a largo plazo.
Este análisis debería compararse con la evaluación del coste necesario para implementar
una solución basada en el EDI. A los costes de contratación previstos deberían añadirse los
costes derivados de procedimientos internos (por ejemplo, preparación del personal).
A continuación se describe la utilización del EDI en los escenarios de contratación:
Escenario 1 -
Nuevo Sistema Ofimático para un Gran Departamento con Compras Centralizadas. La
utilización del EDI en el Escenario 1 es apropiada para la automatización de los intercambios
entre la unidad de compras y los suministradores externos. La figura I-1 muestra los
procesos comerciales que es capaz de soportar el EDI en el Escenario 1.
En el Escenario 4 un uso más extenso de los mensajes EDI permite la automatización de los
diversos procedimientos comerciales y administrativos que tienen lugar entre el
Departamento y otros agentes, como proveedores, bancos, otras administraciones, etc.
La Figura I-2 muestra esquemáticamente las actividades relevantes para la
Administración Pública que la tecnología EDI es capaz de soportar hoy en día.
VISIÓN COMERCIAL:
El escenario mostrado en la Figura I-2 abarca negocios multilaterales y multisectoriales en
los que la Administración Pública juega diferentes papeles: contratista de un proceso
cliente/servidor, fuente de información estadística, etc. Además, se requieren distintos
acuerdos de intercambio para cubrir los diferentes escenarios EDI entre socios comerciales.
Algunos requisitos destacados que tiene que reunir esta solución son:
Algunas transacciones, como las órdenes de pago, tienen que ser seguras.
para el almacenamiento y administración de los datos más relevantes de las
organizaciones comerciales (nombre y dirección) y sus perfiles de cooperación, puede
utilizarse un directorio distribuido.
Para soportar de forma segura (fiable) las transacciones de órdenes de pago un
notario electrónico debe actuar como proveedor de un servicio de certificación o
registro notarial.
Los mensajes recibidos tienen que ser reconocidos (mediante el acuse de recibo).
INTEGRACIÓN Y MIGRACIÓN:
Existen dos soluciones básicas para integrar un paquete de software EDI dentro del entorno
tecnológico:
* Solución de Procesador Front-End -frontal de comunicaciones- (FEP): Los servicios
EDI se mantienen tan separados como sea posible de las aplicaciones existentes.
* Solución Integrada: Las aplicaciones existentes se modifican para integrar en ellas la
funcionalidad EDI.
Estaciones de trabajo EDI
Una estación de trabajo EDI es la solución más flexible desde el punto de vista de la
integración con el entorno de tecnologías de la información existente. En realidad, se trata de
una pasarela EDI dotada de capacidades para la entrada local de datos y la gestión de los
mensajes de la base de datos. Utilizando una estación de trabajo, el usuario puede procesar
mensajes manualmente y con mayor facilidad que con las soluciones FEP o integrada. Una
estación de trabajo no está necesariamente integrada con las aplicaciones internas y puede
utilizarse de forma autónoma. No se recomienda esta solución, ya que, como consecuencia
de la intervención humana, los beneficios derivados de la utilización del EDI se ven
reducidos.
Los estándares EDI a nivel mundial son: ANSI X-12 y EDIFACT, cada uno de ellos maneja
transacciones electrónicas aplicadas a cualquier industria Comercial, Puertos, Aduanas, etc.
ANSI X-12
Publica un release ó versión por año y se identifican por números, por ejemplo: 3020, 3040,
3060. 4010, et., creado en Estados Unidos.
Características:
Dentro de las transacciones EDI, se identifican por número, existe una breve explicación de
su uso. Y de ahí se derivan las tablas, cada tabla indica si es un encabezado ó un detalle,
dentro de ellos contiene los segmentos a utilizar, su ID, y su nombre, además de sí es
requerido ó no, es decir que tiene que ir el segmento y cada cuando lo podemos utilizar.
Además de los calificadores que podemos utilizar.
BG*MXUR003*MAEU*MXUR003*MAEU*010727*1343*GS*SO*MXUR003*MAEU*010727
*1343* 143*X*003030ST*322*00044267*GLDU*0534054*26676*G*11023******
CN*N/A****A*L *4*HP***4500*M7*A5231533***W2*GLDU*0534054**CN*L*****
BG Es un elemento
Es más fácil de interpretar ya que no maneja muchas condiciones como ANSI X-12, pero si
encontramos en los segmentos y elementos de datos con sus opciones de Mandatorio,
opcional, condicional, etc.
EDIFACT
Pública sus release dos veces por año, versión "A" y "B", y se identifican con el año 96-A, 96-
B, etc., es desarrollado en Europa.
En la ONU existe un grupo que regula los estándares de EDI y sus tendencias, por lo que
ahora en el último consenso mundial se ha decidió solo utilizar un solo estándar y este es
EDIFACT. ANSI esta de acuerdo con la ONU y han comenzado a migrar a EDIFACT, por lo
que será común encontrar a diferentes industrias en diferentes partes del mundo utilizando
ambos estándares. © Mario Pérez Villeda e-mail: xmlbyedi@yahoo.com.mx
Para conocer un poco más de ANSI X-12 y EDIFACT, describiré sus características.
Las transacciones de EDI en ANSI X-12, son: desde la 104 hasta llegar a la 997, y cada
número
♥ Tipo Símbolo
♥ Numérico Nn
♥ Número decima l R
♥ Identificador ID
♥ String AN
♥ Día DT ( CCYYMMDD)
♥ Binario B
♥ M Mandatorio
♥ Opcional
♥ P Paridad múltiple
♥ R Requerido
♥ E Excluyente
♥ C Condicional
♥ L Lista condicional
Los elementos compuestos siempre califican al elemento y mucho de ellos pueden tener
diferentes condiciones, todo depende de la transacción en X-12. Para darnos una idea de un
mensaje EDI X-12. © Mario Pérez Villeda e-mail: xmlbyedi[arroba]yahoo.com.mx
Ejemplo de EDIFACT:
UNB+UNOA:1+ENSENADAINTERNATIONALTERMINAL+TRANSPORTACION+010717
:0755+258+++UNH+2572+BAPLIE:1:911:UN:SMDG15BGM++2572+9'TDT+20+003WB+
+:103::TMMSINALOA++MLL:172:20'LOC+61+MXZLO'DTM+178:0107170755:201DTM+
133:0107170755:201
La automatización de las interacciones por medio del EDI minimiza las transacciones sobre
papel y la intervención humana, reduciéndose las tareas relativas a la reintroducción de
datos, impresión, envío de documentos vía correo o vía fax. A través del EDI, las
Administraciones Públicas pueden incrementar la eficiencia de las operaciones diarias y
mejorar las relaciones con agentes externos como empresas, instituciones económicas y
financieras, y otras Administraciones Públicas.
El universo de clientes potenciales del servicio EDI es muy amplio, debido a que ésta dirigido
a empresas que se relacionan comercialmente, en forma independiente de su tamaño.
CONSIDERACIONES DE SOFTWARE:
Tener instalado en la máquina únicamente el software necesario reduce riesgos. Así mismo
tener controlado el software asegura la calidad de la procedencia del mismo (el software
obtenido de forma ilegal o sin garantías aumenta los riesgos). En todo caso un inventario de
software proporciona un método correcto de asegurar la reinstalación en caso de desastre. El
software con métodos de instalación rápidos facilita también la reinstalación en caso de
contingencia.
Existe un software que es conocido por la cantidad de agujeros de seguridad que introduce.
Se pueden buscar alternativas que proporcionen iguales funcionalidades pero permitiendo
una seguridad extra.
Los puntos de entrada en la red son generalmente el correo, las páginas web y la entrada de
ficheros desde discos, o de ordenadores ajenos, como portátiles.
Mantener al máximo el número de recursos de red sólo en modo lectura, impide que
ordenadores infectados propaguen virus. En el mismo sentido se pueden reducir los
permisos de los usuarios al mínimo.
Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan
trabajar durante el tiempo inactivo de las máquinas.
Controlar y monitorizar el acceso a Internet puede detectar, en fases de recuperación, cómo
se ha introducido el virus.
SITIOS INTERACTIVOS:
Los sitios interactivos permiten una comunicación permanente y fluida entre los clientes y la
compañía, para de esta forma, prestar un mejor servicio, bien sea, de venta o posventa.
Son sitios que parten de uno básico y se van complementando con módulos adicionales que
cumplen funciones específicas de acuerdo a las características de negocio de cada
compañía, por ejemplo: módulos para inscripciones a eventos, módulos para manejos de
contenidos de quejas y reclamos, módulos automáticos para manejo de correos, módulos
para manejos de videos, fotos, idiomas, etc.
Los contenidos puedes ser administrado directamente por empleados de la compañía con
claves de seguridad o por Cresiweb Ltda. Estos sitios son un poco más complejos, con ellos
realmente se empieza a sacar un mayor provecho de internet ya que no son estáticos y se
convierten en una efectiva herramienta de trabajo, donde los usuarios siempre van a
encontrar algo nuevo que consolide aún más las relación que se tenga con las compañías.
SERVICIOS INTERACTIVOS
Tipos de servicios:
APLICACIONES INTERACTIVAS:
Servicios Públicos
LENGUAJE DE PROGRAMACIÓN
HISTORIA:
Código Fortran en una tarjeta perforada, mostrando el uso especializado de las columnas 1-
5, 6 y 73-80.
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje
específico conocido como código máquina, el cual la máquina comprende fácilmente, pero
que lo hace excesivamente complicado para las personas. De hecho sólo consiste en
cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un
traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras
provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para
sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la
misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de
recordar y entender que los números.
La necesidad de recordar secuencias de programación para las acciones usuales llevó a
denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL
(multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó
"instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador.
Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su
denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los
humanos, denominados también lenguajes de alto nivel.
La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella
Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de
conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica.
Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el
trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de
computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como
homenaje a esta programadora.
A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para
desarrollar una alternativa más práctica al lenguaje ensamblador para programar la
computadora central IBM 704. El histórico equipo Fortran de Backus consistió en los
programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt,
Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.[2]
El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer
compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque
los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera
generar código cuyo desempeño fuera comparable al de un código hecho a mano en
lenguaje ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en 2010 en informática de
gestión.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se
hizo necesario disponer de un método más eficiente para programarlas. Entonces, se
crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los
microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar
dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje
de alto nivel bastará con solo una.
ELEMENTOS:
Todos los lenguajes de programación tienen algunos elementos de formación primitivos para
la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos (tal
como la suma de dos números o la selección de un elemento que forma parte de una
colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que
describen su estructura y significado respectivamente.
SINTAXIS:
Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su
lectura. Este ejemplo está escrito en Python.
A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de
los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de
texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes
naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más
gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un
programa.
La sintaxis de un lenguaje de programación describe las combinaciones posibles de los
símbolos que forman un programa sintácticamente correcto. El significado que se le da a una
combinación de símbolos es manejado por su semántica (ya sea formal o como parte del
código duro de la referencia de implementación). Dado que la mayoría de los lenguajes son
textuales, este artículo trata de la sintaxis textual.
La sintaxis de los lenguajes de programación es definida generalmente utilizando una
combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-
Naur (para la estructura gramática). Este es un ejemplo de una gramática simple, tomada de
Lisp:
expresión ::= átomo | lista
átomo ::= número | símbolo
número ::= [+-]?['0'-'9']+
símbolo ::= ['A'-'Z'<nowiki>'</nowiki>a'-'z'].*
lista ::= '(' expresión* ')'
SEMÁNTICA ESTÁTICA:
La semántica estática define las restricciones sobre la estructura de los textos válidos que
resulta imposible o muy difícil expresar mediante formalismos sintácticos estándar. Para los
lenguajes compilados, la semántica estática básicamente incluye las reglas semánticas que
se pueden verificar en el momento de compilar. Por ejemplo el chequeo de que cada
identificador sea declarado antes de ser usado (en lenguajes que requieren tales
declaraciones) o que las etiquetas en cada brazo de una estructura case sean distintas.
Muchas restricciones importantes de este tipo, como la validación de que los identificadores
sean usados en los contextos apropiados (por ejemplo no sumar un entero al nombre de una
función), o que las llamadas a subrutinas tengan el número y tipo de parámetros adecuado,
puede ser implementadas definiéndolas como reglas en una lógica conocida como sistema
de tipos. Otras formas de análisis estáticos, como los análisis de flujo de datos, también
pueden ser parte de la semántica estática. Nuevos lenguajes de programación como Java y
C# tienen un análisis definido de asignaciones, una forma de análisis de flujo de datos, como
parte de su semántica estática.
SISTEMA DE TIPOS:
Un sistema de tipos define la manera en la cual un lenguaje de programación clasifica los
valores y expresiones en tipos, como pueden ser manipulados dichos tipos y como
interactúan. El objetivo de un sistema de tipos es verificar y normalmente poner en vigor un
cierto nivel de exactitud en programas escritos en el lenguaje en cuestión, detectando ciertas
operaciones inválidas. Cualquier sistema de tipos decidible tiene sus ventajas y desventajas:
mientras por un lado rechaza muchos programas incorrectos, también prohíbe algunos
programas correctos aunque poco comunes. Para poder minimizar esta desventaja, algunos
lenguajes incluyen lagunas de tipos, conversiones explícitas no checadas que pueden ser
usadas por el programador para permitir explícitamente una operación normalmente no
permitida entre diferentes tipos. En la mayoría de los lenguajes con tipos, el sistema de tipos
es usado solamente para checar los tipos de los programas, pero varios lenguajes,
generalmente funcionales, llevan a cabo lo que se conoce como inferencia de tipos, que le
quita al programador la tarea de especificar los tipos. Al diseño y estudio formal de los
sistemas de tipos se le conoce como teoría de tipos.
IMPLEMENTACIÓN:
Código fuente de un programa escrito en el lenguaje de programación Java.
La implementación de un lenguaje es la que provee una manera de que se ejecute un
programa para una determinada combinación de software y hardware. Existen básicamente
dos maneras de implementar un lenguaje: compilación e interpretación.
COMPILACIÓN: Es el proceso que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa equivalente
que la máquina será capaz interpretar. Los programas traductores que pueden realizar
esta operación se llaman compiladores. Éstos, como los programas ensambladores
avanzados, pueden generar muchas líneas de código de máquina por cada
proposición del programa fuente.
INTERPRETACIÓN: Es una asignación de significados a las fórmulas bien
formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en
términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que
cadenas de símbolos sin ningún significado. Una interpretación otorga significado a
esas fórmulas.
Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de
traducir el programa fuente y grabar en forma permanente el código objeto que se produce
durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el
programa fuente en la computadora junto con los datos que se van a procesar. A
continuación, un programa intérprete, almacenado en el sistema operativo del disco, o
incluido de manera permanente dentro de la máquina, convierte cada proposición del
programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el
procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a
lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo
o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución
repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución
(porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de
diseño (porque no se tiene que estar compilando a cada momento el código completo). El
intérprete elimina la necesidad de realizar una compilación después de cada modificación del
programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un
programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que
uno que se debe interpretar a cada paso durante una ejecución del código.
La mayoría de lenguajes de alto nivel permiten la programación multipropósito, sin embargo,
muchos de ellos fueron diseñados para permitir programación dedicada, como lo fue el
Pascal con las matemáticas en su comienzo. También se han implementado lenguajes
educativos infantiles como Logo que mediante una serie de simples instrucciones. En el
ámbito de infraestructura de Internet, cabe destacar a Perl con un poderoso sistema de
procesamiento de texto y una enorme colección de módulos.
TÉCNICA:
Libros sobre diversos lenguajes de programación.
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una
serie de detalles.
• Corrección: Un programa es correcto si hace lo que debe hacer tal y como se
estableció en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qué debe hacer el programa
antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
• Claridad: Es muy importante que el programa sea lo más claro y legible posible, para
facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe
intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la
edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de
creación como en las fases posteriores de corrección de errores, ampliaciones,
modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador,
con lo cual la claridad es aún más necesaria para que otros programadores puedan
continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte
ASCII para delimitar secciones de código. Otros, por diversión o para impedir un
análisis cómodo a otros programadores, recurren al uso de código ofuscado.
• Eficiencia: Se trata de que el programa, además de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los
recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele
hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a
la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser
de consideración al obtener la eficiencia de un programa, dependiendo de su
naturaleza (espacio en disco que utiliza, tráfico de red que genera, etc.).
• Portabilidad: Un programa es portable cuando tiene la capacidad de poder ejecutarse
en una plataforma, ya sea hardware o software, diferente a aquella en la que se
elaboró. La portabilidad es una característica muy deseable para un programa, ya que
permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux
ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el
programa pueda llegar a más usuarios más fácilmente.
PARADIGMAS:
Los programas se pueden clasificar por el paradigma del lenguaje que se use para
producirlos. Los principales paradigmas son: imperativos, declarativos y orientación a
objetos.
Los programas que usan un lenguaje imperativo especifican un algoritmo, usan
declaraciones, expresiones y sentencias. Una declaración asocia un nombre de variable con
un tipo de dato, por ejemplo: var x: integer;. Una expresión contiene un valor, por ejemplo: 2
+ 2 contiene el valor 4. Finalmente, una sentencia debe asignar una expresión a una variable
o usar el valor de una variable para alterar el flujo de un programa, por ejemplo: x := 2 + 2; if
x == 4 then haz_algo();. Una crítica común en los lenguajes imperativos es el efecto de las
sentencias de asignación sobre una clase de variables llamadas "no locales".
Los programas que usan un lenguaje declarativo especifican las propiedades que la salida
debe conocer y no especifica cualquier detalle de implementación. Dos amplias categorías
de lenguajes declarativos son los lenguajes funcionales y los lenguajes lógicos. Los
lenguajes funcionales no permiten asignaciones de variables no locales, así, se hacen más
fáciles, por ejemplo, programas como funciones matemáticas. El principio detrás de los
lenguajes lógicos es definir el problema que se quiere resolver (el objetivo) y dejar los
detalles de la solución al sistema. El objetivo es definido dando una lista de sub-objetivos.
Cada sub-objetivo también se define dando una lista de sus sub-objetivos, etc. Si al tratar de
buscar una solución, una ruta de sub-objetivos falla, entonces tal sub-objetivo se descarta y
sistemáticamente se prueba otra ruta.
La forma en la cual se programa puede ser por medio de texto o de forma visual. En la
programación visual los elementos son manipulados gráficamente en vez de especificarse
por medio de texto.