lunes, 21 de mayo de 2012

INTERPRETES Y COMPILADORES

Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete.
Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:
  • Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua.
  • Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
    • Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
    • Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
    • Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.
ALGORITMO 

En matemáticasciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi ) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas
 a quien deba realizar dicha actividad.Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos enmatemática son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.
Los diagramas de flujo sirven para representar algoritmos de manera gráfica
.

Diagrama de flujo

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

Pseudocódigo

El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los |diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.
Así el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.

PROCEDIMIENTO

En teoría de la computación, un procedimiento efectivo es una secuencia de pasos repetible y determinista; es decir, una en que siempre se irán obteniendo los mismos conjuntos de valores de salida, para los mismos conjuntos de valores de entrada.
Todos los algoritmos son procedimientos efectivos, sin embargo, no todos los procedimientos efectivos son algoritmos. Esto porque los algoritmos poseen propiedades adicionales que los primeros no tienen.

Ejemplo: 
  • Una receta de cocina es un procedimiento efectivo, porque corresponde a una serie de pasos que siempre lleva a un mismo resultado (por ejemplo, un pastel). Sin embargo, no es un algoritmo, pues depende del cocinero el cómo quede ese pastel, incluso teniendo los mismos ingredientes e instrumentos de trabajo.
  • Un código fuente que contiene un bucle infinito NO es un algoritmo aunque esté implementado formalmente en algún lenguaje de programación, ya que nunca se detendrá. No obstante, sí se considera un procedimiento efectivo, porque cada iteración es en sí misma determinista, y una sucesión de iteraciones también lo será.

SUB RUTINA 

En computación, una subrutina o subprograma (también llamada procedimientofunción o rutina), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas que devuelven un valor.
Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto.
Elementos de la declaraciòn de una sub rutina:
Las declaraciones de subrutinas generalmente son especificadas por:
  • Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función niprocedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos).
  • Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución.
  • Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea.
  • El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina.

  

Ejemplos

 PROGRAMA principal
     instrucción 1
                   instrucción 2
     ...
     instrucción N
     ...
     SUBRUTINA NombreX
        .......
     FIN SUBRUTINA
     ...
 FIN PROGRAMA principal.
La siguiente función en C es la analogía al cálculo del promedio matemático. La función "Promedio" devuelve un valor decimal correspondiente a la suma de 2 valores enteros de entrada (A y B):
float Promedio(int A, int B){
   float r;
   r=(A+B)/2.0;
   return r;
}
Así una llamada "Promedio(3, 5)" devolverá el valor de tipo real (float) 4,0.

PROGRAMA INFORMÀTICO
Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar. Al conjunto general de programas, se le denomina software, que más genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora digital.
En informática, se los denomina comúnmente binarios, (propio en sistemas Unix, donde debido a la estructura de este último, los ficheros no necesitan hacer uso de extensiones. Posteriormente, los presentaron como ficheros ejecutables, con extensión .exe, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilación y han sido creados, las instrucciones que se escribieron en un lenguaje de programación que los humanos usan para escribirlos con mayor facilidad, se han traducido al único idioma que la máquina comprende, combinaciones de ceros y unos llamada código máquina. El mismo término, puede referirse tanto a un programa ejecutable, como a su código fuente, el cual es transformado en un binario cuando es compilado.
Generalmente el código fuente lo escriben profesionales conocidos como programadores. Se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo y que posteriormente puede ser convertido en una imagen ejecutable por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instrucción por instrucción.
De acuerdo a sus funciones, se clasifican en software de sistema y software de aplicación. En los computadores actuales, al hecho de ejecutar varios programas de forma simultánea y eficiente, se le conoce como multitarea.
Ejecuciòn y almacenamiento de los programas:
Típicamente, los programas se almacenan en una memoria no volátil (por ejemplo un disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecución. Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador. El procesador ejecuta (corre) el programa, instrucción por instrucción hasta que termina. A un programa en ejecución se le suele llamar también proceso. Un programa puede terminar su ejecución en forma normal o por causa de un error, dicho error puede ser de software o de hardware.

Programas empotrados en hardware


El microcontrolador a la derecha de laMemoria USB está controlada por un firmwareempotrado.

Algunos programas están empotrados en el hardware. Una computadora con arquitectura de programas almacenados requiere un programa inicial almacenado en su ROM para arrancar. El proceso de arranque es para identificar e inicializar todos los aspectos del sistema, desde los registros del procesadorcontroladores de dispositivos hasta el contenido de la memoria RAM. Seguido del proceso de inicialización, este programa inicial carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales. Independiente de la computadora, un dispositivo de hardware podría tener firmware empotrado para el control de sus operaciones. El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca, o cuando el programa no debe perderse cuando haya ausencia de energía.

Programas cargados manualmente

Interruptores para la carga manual en unaData General Nova 3.
Los programas históricamente se cargaron manualmente al procesador central mediante interruptores. Una instrucción era representada por una configuración de estado abierto o cerrado de los interruptores. Después de establecer la configuración, se ejecutaba un botón de ejecución. Este proceso era repetitivo. También, históricamente los programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas. Después de que el programa se cargaba, la dirección de inicio se establecía mediante interruptores y el botón de ejecución se presionaba.

Programas generados automáticamente

La programación automática es un estilo de programación que crea código fuente mediante clases genéricasprototiposplantillas,aspectos, y generadores de código para aumentar la productividad del programador. El código fuente se genera con herramientas de programación tal como un procesador de plantilla o un IDE. La forma más simple de un generador de código fuente es un procesadormacro, tal como el preprocesador de C, que reemplaza patrones de código fuente de acuerdo a reglas relativamente simples.
Un motor de software da de salida código fuente o lenguaje de marcado que simultáneamente se vuelve la entrada de otro proceso informático. Podemos pensar como analogía un proceso manejando a otro siendo el código máquina quemado como combustible. Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinámico ensamblado a partir deartículos. Las Wikis generan HTMLCSSJava, y Javascript los cuales son interpretados por un navegador web.




SOFTWARE

Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, además de dar soporte a otros programas. Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuentebinario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda lainformación procesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencialLa teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.

El Software de Sistema se divide en:

Sistema operativo

El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento.
Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario, Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de Soporte.
  1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.
  2. Administración de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
  3. Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de programas.
  4. Administración de tareas: Administra la información sobre los programas y procesos que se están ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como terminar programas.
  5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de software.

Controladores de Dispositivos

Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware.

Programas Utilitarios

Los Programas Utilitarios realizan diversas funciones para resolver problemas específicos, además de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.

Software de Aplicación

El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar la realización de tareas específicas en la computadora, como pueden ser las aplicaciones ofimáticas (procesador de texto, hoja de cálculo, programa de presentación, sistema de gestión de base de datos...), u otros tipos de software especializados como software médico, software educativo, editores de música, programas de contabilidad, etc.

Software de Programación

El Software de Programación es el conjunto de herramientas que permiten al desarrollador informático escribir programas usando diferentes alternativas y lenguajes de programación.
Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores, enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz gráfica de usuario (GUI).

http://www.masadelante.com/faqs/software-hardware

Los Programas de Aplicacion suelen dividirse 
Imagen
Imagen
imagen
imagenhttp://infomonica.galeon.com/aficiones1864144.html
imagen



http://infomonica.galeon.com/aficiones1864144.html



SISTEMAS 
Un sistema informático es un conjunto de partes que funcionan relacionándose entre sí con un objetivo preciso. Sus partes son: hardwaresoftware y las personas que lo usan.

Por ejemplo, una computadora, sus dispositivos periféricos y la persona que la maneja, pueden constituir un sistema informático.

Un sistema informático puede formar parte de un sistema de información; en este último la información, uso y acceso a la misma, no necesariamente está informatizada. Por ejemplo, el sistema de archivo de libros de una biblioteca y su actividad en general es un sistema de información. Si dentro del sistema de información hay computadoras que ayudan en la tarea de organizar la biblioteca, estonces ese es un sistema informático.

Diferencia entre sistema informático y sistema de información

* En un sistema informático se utilizan computadoras para almacenar, procesar y/o acceder a información.
* En un sistema de información se pueden utilizar computadoras, pero no es necesario. El acceso a la información puede ser físico (por ejemplo, una persona se encarga de buscar en un archivador).
* Tanto el sistema informático como el sistema de información, incluyen a las personas que acceden o producen información dentro del sistema. Las personas tienen que capacitarse para enteder el funcionamiento y procedimientos que soporta sistema.
* Ambos sistemas tienen un propósito. Por ejemplo, gestionar el acceso y distribución de libros una biblioteca, administrar la entrada/salida de mercadería, personal y otros recursos de un comercio, etc.





miércoles, 25 de abril de 2012

Introducción al Comercio Electrónico 

Hoy en día es ampliamente aceptado el hecho de que las nuevas tecnologías, en particular el acceso a Internet, tienden a modificar la comunicación entre los distintos participantes del mundo profesional, especialmente:
  • las relaciones entre la empresa y sus clientes,
  • el funcionamiento interno de la empresa, que incluye las relaciones entre la empresa y los empleados,
  • la relación de la empresa con sus diversos socios y proveedores.
Por lo tanto, el término "comercio electrónico" se refiere a la integración dentro de la empresa de herramientas basadas en tecnologías de información y comunicación (denominadas por lo generalsoftware empresarial con el fin de mejorar su funcionamiento y crear valor para la empresa, sus clientes y sus socios.
El comercio electrónico ya no se aplica solamente a empresas virtuales cuyas actividades están en su totalidad basadas en la Web, sino también a empresas tradicionales (denominadas de ladrillos y cemento).
El término comercio electrónico, de hecho sólo cubre un aspecto de los negocios electrónicos: la utilización de un soporte electrónico para la relación comercial entre la empresa e individuos.
El propósito de este documento es presentar las distintas "tecnologías" subyacentes (en realidad, modos organizativos basados en tecnologías de información y comunicación) y los acrónimos asociados a ellas.

Organización de la Empresa Electrónica

Una empresa se puede considerar una entidad que provee productos y servicios a los clientes con el apoyo de productos o servicios de socios en un entorno que cambia constantemente. Se puede modelar el funcionamiento de una empresa de acuerdo con un conjunto de funciones que interactúan, que se dividen comúnmente en tres categorías:
  • Funciones de rendimiento, que representan el centro de la actividad de la empresa (su negocio principal), es decir, la producción de mercancías y servicios. Corresponden a actividades de producción, gestión de existencias y compras (función de compras).
  • Las funciones de administración, que abarcan todas las funciones estratégicas de administración de la empresa: la administración general de la empresa, las funciones de gestión de recursos humanos (HR) y también las funciones de gestión financiera y contable.
  • Las funciones de soporte, que apoyan las funciones de rendimiento para asegurar el correcto funcionamiento de la empresa. Estas funciones abarcan todas las actividades relacionadas con las ventas (en algunos casos forman parte del negocio principal) y también todas las actividades transversales a la organización, como la gestión de infraestructuras tecnológicas (IT, función detecnología de información).
Funciones y relaciones de la empresa
En general, las empresas se caracterizan por el tipo de relaciones comerciales que mantienen. Por eso existen términos exclusivos destinados a calificar este tipo de relación:
  • E a E (empresa a empresa, a veces escrito B2B por su acrónimo en inglés): se refiere a una relación comercial de empresa a empresa basada en el uso de un soporte numérico para el intercambio de la información.
  • E a C (empresa a consumidor, a veces escrito B2C, por su acrónimo en inglés): se refiere a una relación entre una empresa y el público general (individuos). Esto es lo que se conoce como comercio electrónico, cuya definición no se limita a las ventas sino que abarca todos los intercambios posibles entre una empresa y sus clientes, desde la solicitud de un presupuesto hasta los servicios posventa.
  • E a A (empresa a administración, a veces escrito B2A por su acrónimo en inglés): se refiere a una relación entre una empresa y el sector público (administración impositiva, etc.), la cual se basa en mecanismos de intercambios numéricos (teleprocedimientos, formularios electrónicos, etc.).
También ha surgido, por extensión de estos conceptos, el término E a E (empresa a empleado, a veces escrito B2E, por su acrónimo en inglés), el cual se refiere a la relación entre una empresa y sus empleados, especialmente a través de formularios destinados a la gestión de sus carreras, sus vacaciones o sus relaciones con el comité de la compañía.



¿Como funciona esta Empresa Electrónica?

Representación esquemática de una empresa
Se usan por lo general para describir las partes de la empresa (o de su sistema de información) que se dedican a la relación directa con el cliente y a la administración correcta de la empresa, respectivamente.
Los sistemas de atención al cliente (también llamados a veces primera línea) se refieren a la parte frontal de la empresa, visible para los clientes.
A su vez, los sistemas administrativos hacen referencia a todas las partes del sistema de información a las que el usuario final no tiene acceso. Por lo tanto, el término abarca todos los procesos internos dentro de una empresa (producción, logística, almacenamiento, ventas, contabilidad, gestión de recursos humanos, etcétera).