Vous êtes sur la page 1sur 24

EDI Y LENGUEJES DE PROGRAMACION

JESSICA JOHANNA FLOREZ HERNANDEZ


SANDRA MILENA MUNEVAR GOMEZ
YURI ROCIO BALLESTEROS
LICETH FERNANDA LAZARO
ASTRID GERALDIN PERNIA CORTES

GRUPO: BR

COMERCIO ELECTRONICO

DOCENTE: RICARDO ANDRADE DIAZ

CIENCIAS ECONOMICAS Y EMPRESARIALES


UNIVERSIDAD DE PAMPLONA
VILLA DEL ROSARIO
2011
EDI
(Intercambio Electrónico de Datos)

Es un Conjunto coherente de datos, estructurados conforme a normas de mensajes


acordadas, para la transmisión por medios electrónicos, preparados en un formato capaz de
ser leído por el ordenador y de ser procesado automáticamente y sin ambigüedad.
Es aquella parte de un sistema de información capaz de cooperar con otros sistemas de
información mediante el intercambio de mensajes EDI.

¿QUÉ FUNCIONALIDAD OFRECE EL EDI?

Intercambio electrónico de datos es el intercambio entre sistemas de información, por medios


electrónicos, de datos estructurados de acuerdo con normas de mensajes acordadas. A
través del EDI, las partes involucradas cooperan sobre la base de un entendimiento claro y
predefinido acerca de un negocio común, que se lleva a cabo mediante la transmisión de
datos electrónicos estructurados.

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.

PLANIFICACIÓN DE SISTEMAS DE INFORMACIÓN EN LA EMPRESA:


Hoy en día, el sistema informativo contable de cualquier empresa, por pequeña que sea, se
encuentra informatizado, de forma que habitualmente se logran unos elevados niveles de
automatización de las tareas administrativo-contables. Por ejemplo, es frecuente que se
encuentren integrados los programas de contabilidad con los que gestionan la tesorería o la
nómina y que estos datos se procesen muy rápidamente.
Pero suele suceder que dos empresas que mantienen una intensa relación comercial cliente-
proveedor y que disponen de sendos sistemas informativos contables avanzados, realicen
sus transacciones económicas introduciendo las órdenes de compra, las facturas y el resto
de documentos en sobres, que posteriormente son enviados por correo. Hoy en día, también
es habitual enviar estos documentos a través del fax, con lo que se agiliza la gestión. Si la
empresa utiliza un fax-modem conectado al ordenador y gestionado por un programa
informático, se evita tener que imprimir los documentos, enviándolos directamente desde su
ordenador hasta el fax de la otra empresa.
Otra solución más sofisticada, pero menos frecuente, consiste en enviar dichos documentos
a través del correo electrónico. El correo electrónico permite enviar mensajes entre diferentes
ordenadores que estén conectados a redes de ordenadores como por ejemplo Internet o
Compusiere. Sin embargo, este procedimiento no está exento de inconvenientes, debido a
que el correo electrónico no está normalizado y, salvo que el cliente y el proveedor acuerden
previamente componer de alguna forma sus mensajes, exige que el receptor traduzca los
documentos recibidos. Además, el uso de mero correo electrónico no es un medio seguro
para realizar las transmisiones comerciales ni garantiza su confidencialidad.
La solución que desde hace varios años están adoptando muchas empresas se denomina
EDI o Intercambio Electrónico de Datos. El EDI básicamente consiste en transmitir
electrónicamente documentos comerciales y administrativos entre aplicaciones informáticas,
en un formato normalizado. En este trabajo describimos qué es el EDI, qué diferentes
normas EDI existen, por dónde viajan los datos, cual es la estructura de un mensaje EDI, los
beneficios y los costes que para una empresa puede suponer el implantar este sistema y el
impacto que puede tener sobre la Contabilidad.

EL EDI, ¿REVOLUCIÓN CONCEPTUAL O TECNOLÓGICA?


Así como en los años ochenta y noventa el ordenador ha sido la herramienta de trabajo
básica del profesional de la Contabilidad, desde hace varios años asistimos a una verdadera
revolución en la transmisión electrónica de información, de forma que se intuye que en los
umbrales del siglo XXI las herramientas que utilizará este profesional estarán ligadas a las
telecomunicaciones. En palabras de René Ricol (1995), presidente de la orden de expertos
contables de Francia, "de todos los progresos que acompañarán a la profesión contable, el
EDI es ciertamente el más inminente". En este apartado analizamos las novedades
organizativas que implica la utilización del EDI en la empresa, revisamos los principales
intentos de normalización y la situación actual de los diferentes estándares EDI.
El EDI consiste en transmitir electrónicamente documentos comerciales y administrativos
entre aplicaciones informáticas en un formato normalizado, de forma que la información entre
las empresas pueda ser procesada sin intervención manual. Las empresas que desean
utilizar el EDI se suelen poner en contacto con compañías ligadas al sector de las
telecomunicaciones que ofrecen servicios EDI. Un servicio EDI, es el conjunto de prácticas
asociadas a la explotación de un sistema telemático particular de EDI que cubren todos los
aspectos funcionales del servicio (técnicos, organizativos, de formación, de soporte y
mantenimiento, comerciales y administrativos), dando así forma a una aplicación EDI
concreta para un segmento industrial particular.
TRANSMISIÓN DE DOCUMENTOS ENTRE EMPRESAS:
El sistema tradicional en el que se basan las transmisiones de documentos entre las
empresas, al estar centrado en el uso del papel, presenta dos inconvenientes. En primer
lugar, la lentitud. Documentos que se generan en ordenadores que procesan la información a
gran velocidad, posteriormente sufren retrasos producidos al tener que procesarse de forma
manual en las empresas de correos. Por este motivo, muchas empresas han sustituido el
correo como medio para enviar sus documentos por el fax, lo que ha agilizado en buena
medida la gestión. Sin embargo, se mantiene otro problema: la diversidad de modelos de
facturas, pedidos, hojas de precios, etc. Esta falta de normalización es causa de muchos
errores administrativos y, de nuevo, de lentitud. La figura 1, adaptada de Heath (1991)
muestra el procedimiento convencional simplificado de transmisión de documentos
administrativos entre las empresas.

Fig. 1: Procedimiento convencional de transmisión de documentos entre las empresas.


En donde: La primera empresa extrae la información necesaria de la base de datos del
sistema informático contable e imprime los documentos necesarios. Estos documentos se
envían por correo a la otra empresa, quien debe introducir de nuevo los datos en su sistema
informático. Por lo tanto, en el procedimiento tradicional frecuentemente se producen
redundancias ya que los documentos que se imprimen en una empresa son introducidos
manualmente por sus empleados en el sistema informático de la otra.
La figura 2: Muestra, grosso modo, los cambios que supone implantar un sistema EDI.
Como se aprecia en la nueva figura, el EDI no supone una verdadera revolución desde el
punto de vista conceptual.
Lo cual consiste simplemente en incorporar un procedimiento electrónico de transmisión de
información al documento administrativo-contable. De la simple observación de la figura
podemos apreciar cómo la empresa puede obtener ahorro de varias formas tras implantar un
sistema electrónico de intercambio de datos. En primer lugar, aparece un ahorro de tiempo,
ya que la información viaja por redes de comunicación. En segundo lugar, se producen
menos errores, ya que el proceso está completamente automatizado y los ordenadores se
equivocan menos. Además puede haber un importante ahorro en dinero, dependiendo de lo
que cueste enviar estos documentos.

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.

Figura I-1 El EDI en el Escenario 1


En la solución adoptada, la unidad de compras, en nombre del Departamento, intercambia
mensajes EDI normalizados con dos suministradores habituales para solicitar ofertas sobre
ciertas mercancías o servicios. Los proveedores potenciales envían las ofertas solicitadas, la
unidad de compras envía una orden de compra al proveedor seleccionado, el cual, a su vez,
enviará el aviso de expedición (notificación de entrega) y la correspondiente factura.
Para el intercambio interno de información es preferible utilizar los mensajes EDI
normalizados. Sin embargo, en el ejemplo anterior, se han utilizado formatos de mensajes
locales.
En resumen, el EDI permite que el contratista reúna algunos de los requisitos de los Nuevos
Sistemas Ofimáticos:
* Automatización de los complejos procedimientos de compras;
* Intercambio de documentos electrónicos con los proveedores habituales y el banco;
* Reducción del tiempo de entrega;
* Reducción del esfuerzo asociado a la gestión de los procedimientos de compras.
Escenario 2 -
Nuevo Sistema Ofimático Pequeño para una Unidad Administrativa
El Escenario 2 hace referencia al intercambio de memorias o documentos de trabajo dentro
de una unidad administrativa pequeña. Dado que no está previsto el intercambio de
documentos comerciales con agentes externos, no se ha identificado ninguna necesidad de
utilizar el EDI en dicho escenario.
Escenario 3 -
Sistema Integrado de Voz y Datos para un Gran Departamento
El Escenario 3 hace referencia a la integración de los sistemas de voz y datos, sin requisitos
específicos para el intercambio de mensajes EDI. No obstante, en el futuro podría utilizarse
la red troncal de comunicaciones y los servicios de directorio para soportar el EDI.
Escenario 4 -
Descentralización en una Gran Administración Pública Distribuida

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.

Figura I-2 Actividades de la Administración Pública soportadas por el EDI


Se dispone de mensajes EDI para soportar ciclos comerciales/administrativos con diferentes
agentes externos, en áreas comunes a muchas Administraciones Públicas:
• Pedido/facturación a/de proveedores;
• Estadísticas, con propósitos informativos;
• Operaciones de seguros;
• Pre-oferta y oferta;
• Control post-oferta;
• Pagos a través de bancos.

El EDI también puede soportar otros procesos de la Administración Pública en dominios


específicos como:
• Aduanas.
• administración social.
• Transporte.
• Sanidad.
• Municipios.
• Policía.
• Servicios judiciales.

Un posible requisito de todos los escenarios EDI es la necesidad de reconocer, mediante un


acuse de recibo, los mensajes enviados. El EDI es capaz de cumplir este requisito a través
del intercambio de un mensaje de servicio dedicado específicamente a este propósito.
Un requisito importante del nuevo sistema es la necesidad de contemplar ciertas
características de seguridad. Los requisitos típicos de seguridad son: autentificación del
origen del mensaje, no-repudio del origen, no repudio de la recepción, integridad del
contenido, confidencialidad del contenido. Aunque no se disponga todavía de normas EDI en
esta área, el sistema EDI puede ofrecer dichas funcionalidades.

¿CÓMO ELEGIR LA SOLUCIÓN CORRECTA?


Las soluciones relativas a los Escenarios 1 y 4 se describen en términos de los requisitos
comerciales y servicios funcionales necesarios para soportar estos negocios particulares.
Por razones legales, es conveniente documentar y especificar ambos escenarios mediante
un acuerdo de intercambio y su correspondiente anexo técnico, con arreglo al marco definido
en el modelo europeo de acuerdo a EDI.
En general, existen diferentes soluciones para integrar las funcionalidades EDI dentro del
entorno de las Tecnologías de la Información del contratista. Estas soluciones abarcan,
desde servicios EDI separados de las aplicaciones ya existentes, hasta la modificación de los
programas (o aplicaciones de usuario) para integrar en ellos las funcionalidades EDI.
Adicionalmente, y a pesar de que los Escenarios 1 y 4 están relacionados con la contratación
de nuevos sistemas (componentes específicos para el EDI), estas soluciones no implican, en
general, la adquisición de un nuevo sistema dedicado.

VISIÓN DEL SERVICIO FUNCIONAL:


La arquitectura funcional que soporta la visión, es decir, que en esta solución las órdenes de
compra son generadas por el personal del Departamento y enviadas posteriormente al
servidor departamental en el cual se ejecutan las aplicaciones de compras y facturación.
Son necesarios los siguientes servicios EDI:
 Comunicación externa;
 Traductor para codificar/decodificar la información local en mensajes normalizados
EDI fact;
 Comunicación interna: el sistema departamental proporciona las capacidades
necesarias para importar/exportar datos entre el traductor y la base de datos local;
 Servicios de seguridad para garantizar la autenticidad e integridad en las
transacciones de órdenes de compra y facturas
 Servicios de gestión: histórico de los mensajes enviados/recibidos, informes de error e
informes de estado del sistema.
La pasarela EDI puede también residir en otro sistema, por ejemplo, una estación de trabajo
EDI dedicada.

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 MÁS UTILIZADOS EN EL MUNDO

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.

Ambos estándares manejan transacciones electrónicas, su diferencia se encuentra en el


formato de cada uno de ellos. Por ejemplo en ANSI X-12 las transacciones se reconocen por
números la 850 Purchase Order, y en EDIFACT tienen nombres como es el caso del
ORDERS, que es la misma transacción.

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:

ANSI X-12: Maneja SEGMENTOS, ELEMENTOS DE DATOS, ELEMENTOS COMPUESTOS


DE DATOS, y su estructura es:

UN SEGMENTO que contiene un elemento de datos y puede tener un elemento compuesto


que califica al elemento de datos. Esto se parece mucho a los conjuntos, un conjunto a que
contiene dentro un conjunto b y puede tener un conjunto C, el saber leer un diccionario de
datos ANSI X-12 es sencillo, solo tienes que aprender los números de transacciones, y los
directorios de segmentos de datos. Trataré de explicar lo más sencillo un documento EDI.

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.

Ejemplo de ANSI X-12:

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 un separador de elemento de datos

~ Es un delimitador de terminación de segmento.

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)

♥ Hora TM ( h, min, seg)

♥ Binario B

♥ Fixed Length String FS

♥ 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

PRINCIPALES CAMPOS DE APLICACIÓN:


Los típicos campos de aplicación del EDI son el intercambio de información industrial,
comercial, financiera, médica, administrativa, fabril o cualquier otro tipo similar de información
estructurada. Esta información, con independencia de su tipo concreto, se estructura en unos
formatos que pueden ser procesados por las aplicaciones informáticas. Ejemplos de datos
EDI son las facturas, órdenes de compra, declaraciones de aduanas, etc.

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.

Como ejemplo de grupos de potenciales clientes, podemos mencionar:

• Sector de la Distribución (Supermercados y Proveedores)

• Sector de las Automotrices (Terminales, Proveedores y Concesionarios)

• Sector Farmacéutico (Farmacias y Laboratorios)

• Sector de la Administración Pública

• Sector del Transporte y Turismo.

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.

CONSIDERACIONES DE UNA RED:

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:

Se pueden establecer tres categorías de servicios:


• Servicios de información: Son aquellos que ofrecen una información independiente de
la programación audiovisual que se está emitiendo en ese momento.
• Servicios ligados a la programación: Son aquellos que complementan con información
suplementaria la programación audiovisual emitida.
• Servicios transaccionales: Son aquellos que ofrecen la posibilidad de enviar y recibir
información de forma personalizada y exclusiva.

APLICACIONES INTERACTIVAS:

Los servicios interactivos se implementan por medio de aplicaciones interactivas. Podemos


definir las aplicaciones interactivas como aquellos programas adicionales a los contenidos de
televisión a los que puede accederse y puede ejecutar un descodificador interactivo. El
usuario es el que decide si quiere o no ver las aplicaciones interactivas mediante una acción
simple con el mando a distancia. Con el fin de comunicar al usuario la posibilidad de acceso
a aplicaciones interactivas, los operadores o canales de televisión presentan un pequeño
menú que indica al usuario que puede ver una aplicación o un grupo de aplicaciones
interactivas.
Estas aplicaciones comúnmente también se clasifican según el servicio que desarrollen.

Servicios Públicos

• Servicios de información (estado del tráfico, tiempo, farmacias de guardia, teléfonos


de interés, información de aeropuertos, trenes, autobuses, etc).
• Servicios avanzados (cita en servicios sanitarios, gestión de impuestos, informaciones
y servicios de ayuntamientos y administraciones públicas, servicios sociales a
colectivos específicos, etc).

Servicios Comerciales o de Ocio

• Fidelizacion a contenidos o programas, concursos, votaciones, publicidad interactiva,


venta por impulso, compra de eventos (fútbol, cine, conciertos, etc).
• Informaciones sobre concursantes, actores, etc. Pueden tanto independientes del
contenido, como integradas y sincronizadas con el mismo (concurso interactivo al
mismo tiempo que el programa).

LENGUAJE DE PROGRAMACIÓN

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones


que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para
crear programas que controlen el comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por
un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se
depura, se compila y se mantiene el código fuente de un programa informático se le llama
programación.

También la palabra programación se define como el proceso de creación de un programa de


computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes
pasos:
 El desarrollo lógico del programa para resolver un problema en particular.
 Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y
'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación
y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es
propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten
diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo
deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de
circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al
lenguaje humano o natural. Una característica relevante de los lenguajes de programación es
precisamente que más de un programador pueda usar un conjunto común de instrucciones
que sean comprendidas entre ellos para realizar la construcción de un programa de forma
colaborativa.

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* ')'

Con esta gramática se especifica lo siguiente:


• una expresión puede ser un átomo o una lista;
• un átomo puede ser un número o un símbolo;
• un número es una secuencia continua de uno o más dígitos decimales, precedido
opcionalmente por un signo más o un signo menos;
• un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios); y
• una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en
medio.
Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:
'12345', '()', '(a b c232 (1))'
No todos los programas sintácticamente correctos son semánticamente correctos. Muchos
programas sintácticamente correctos tienen inconsistencias con las reglas del lenguaje; y
pueden (dependiendo de la especificación del lenguaje y la solidez de la implementación)
resultar en un error de traducción o ejecución. En algunos casos, tales programas pueden
exhibir un comportamiento indefinido. Además, incluso cuando un programa está bien
definido dentro de un lenguaje, todavía puede tener un significado que no es el que la
persona que lo escribió estaba tratando de construir.
Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a una
oración gramaticalmente válida o la oración puede ser falsa:
• "Las ideas verdes y descoloridas duermen furiosamente" es una oración bien formada
gramaticalmente pero no tiene significado comúnmente aceptado.
• "Juan es un soltero casado" también está bien formada gramaticalmente pero expresa
un significado que no puede ser verdadero.
El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una
operación que no está definida semánticamente (dado que p es un apuntador nulo, las
operaciones p->real y p->im no tienen ningún significado):
complex *p = NULL;
complex abs_p = sqrt (p->real * p->real + p->im * p->im);

Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un error de


compilación, pues la variable "p" no estaría definida. Pero el programa sería sintácticamente
correcto todavía, dado que las declaraciones de tipo proveen información semántica
solamente.
La gramática necesaria para especificar un lenguaje de programación puede ser clasificada
por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los lenguajes de
programación puede ser especificada utilizando una gramática Tipo-2, es decir, son
gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp, contienen
construcciones que permiten la ejecución durante la fase de análisis. Los lenguajes que
permiten construcciones que permiten al programador alterar el comportamiento de un
analizador hacen del análisis de la sintaxis un problema sin decisión única, y generalmente
oscurecen la separación entre análisis y ejecución. En contraste con el sistema de macros de
Lisp y los bloques BEGIN de Perl, que pueden tener cálculos generales, las macros de C son
meros reemplazos de cadenas, y no requieren ejecución de código.

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.

LENGUAJES TIPADOS VERSUS LENGUAJES NO TIPADOS:


Se dice que un lenguaje tiene tipos si la especificación de cada operación define tipos de
datos para los cuales la operación es aplicable, con la implicación de que no es aplicable a
otros tipos. Por ejemplo, "this text between the quotes" es una cadena. En la mayoría de los
lenguajes de programación, dividir un número por una cadena no tiene ningún significado.
Por tanto, la mayoría de los lenguajes de programación modernos rechazaran cualquier
intento de ejecutar dicha operación por parte de algún programa. En algunos lenguajes,
estas operaciones sin significado son detectadas cuando el programa es compilado
(validación de tipos "estática") y son rechazadas por el compilador, mientras en otros son
detectadas cuando el programa es ejecutado (validación de tipos "dinámica") y se genera
una excepción en tiempo de ejecución.
Un caso especial de lenguajes de tipo son los lenguajes de tipo sencillo. Estos son con
frecuencia lenguajes de marcado o de scripts, como REXX o SGML, y solamente cuentan
con un tipo de datos; comúnmente cadenas de caracteres que luego son usadas tanto para
datos numéricos como simbólicos.
En contraste, un lenguaje sin tipos, como la mayoría de los lenguajes ensambladores,
permiten que cualquier operación se aplique a cualquier dato, que por lo general se
consideran secuencias de bits de varias longitudes. Lenguajes de alto nivel sin datos
incluyen BCPL y algunas variedades de Forth.
En la práctica, aunque pocos lenguajes son considerados con tipo desde el punto de vista de
la teoría de tipos (es decir, que verifican o rechazan todas las operaciones), la mayoría de los
lenguajes modernos ofrecen algún grado de manejo de tipos. Si bien muchos lenguajes de
producción proveen medios para brincarse o subvertir el sistema de tipos.

TIPOS ESTÁTICOS VERSUS TIPOS DINÁMICOS:


En lenguajes con tipos estáticos se determina el tipo de todas las expresiones antes de la
ejecución del programa (típicamente al compilar). Por ejemplo, 1 y (2+2) son expresiones
enteras; no pueden ser pasadas a una función que espera una cadena, ni pueden guardarse
en una variable que está definida como fecha.
Los lenguajes con tipos estáticos pueden manejar tipos explícitos o tipos inferidos. En el
primer caso, el programador debe escribir los tipos en determinadas posiciones textuales. En
el segundo caso, el compilador infiere los tipos de las expresiones y las declaraciones de
acuerdo al contexto. La mayoría de los lenguajes populares con tipos estáticos, tales como
C++, C# y Java, manejan tipos explícitos. Inferencia total de los tipos suele asociarse con
lenguajes menos populares, tales como Haskell y ML. Sin embargo, muchos lenguajes de
tipos explícitos permiten inferencias parciales de tipo; tanto Java y C#, por ejemplo, infieren
tipos en un número limitado de casos.
Los lenguajes con tipos dinámicos determinan la validez de los tipos involucrados en las
operaciones durante la ejecución del programa. En otras palabras, los tipos están asociados
con valores en ejecución en lugar de expresiones textuales. Como en el caso de lenguajes
con tipos inferidos, los lenguajes con tipos dinámicos no requieren que el programador
escriba los tipos de las expresiones. Entre otras cosas, esto permite que una misma variable
se pueda asociar con valores de tipos distintos en diferentes momentos de la ejecución de un
programa. Sin embargo, los errores de tipo no pueden ser detectados automáticamente
hasta que se ejecuta el código, dificultando la depuración de los programas. Ruby, Lisp,
JavaScript y Python son lenguajes con tipos dinámicos.

TIPOS DÉBILES Y TIPOS FUERTES:


Los lenguajes débilmente tipados permiten que un valor de un tipo pueda ser tratado como
de otro tipo, por ejemplo una cadena puede ser operada como un número. Esto puede ser
útil a veces, pero también puede permitir ciertos tipos de fallas que no pueden ser detectadas
durante la compilación o a veces ni siquiera durante la ejecución.
Los lenguajes fuertemente tipados evitan que paso lo anterior. Cualquier intento de llevar a
cabo una operación sobre el tipo equivocado dispara un error. A los lenguajes con tipos
fuertes se les suele llamar de tipos seguros.
Lenguajes con tipos débiles como Perl y JavaScript permiten un gran número de
conversiones de tipo implícitas. Por ejemplo en JavaScript la expresión 2 * x convierte
implícitamente x a un número, y esta conversión es exitosa inclusive cuando x es null,
undefined, un Array o una cadena de letras. Estas conversiones implícitas son útiles con
frecuencia, pero también pueden ocultar errores de programación.
Las características de estáticos y fuertes son ahora generalmente consideradas conceptos
ortogonales, pero su trato en diferentes textos varia. Algunos utilizan el término de tipos
fuertes para referirse a tipos fuertemente estáticos o, para aumentar la confusión,
simplemente como equivalencia de tipos estáticos. De tal manera que C ha sido llamado
tanto lenguaje de tipos fuertes como lenguaje de tipos estáticos débiles.

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.

Vous aimerez peut-être aussi