Un sistema de información es un conjunto de elementos orientados al tratamiento y administración de datos e información, organizados y listos para su uso posterior, generados para cubrir una necesidad o un objetivo.





Un sistema experto: Programa de inteligencia artificial diseñado para resolver problemas o tomar decisiones en un ámbito determinado de modo análogo al razonamiento humano.
    







 Microsoft Windows

Embarcadero CodeGear
Code::Blocks
Dev-C++
Visual C++
wxDev-C++
Zinjai


Por DOS
Turbo C, reemplazado por C++Builder


Por GNU/Linux

Code::Blocks
NetBeans
Eclipse
Geany
Zinjai
Kdevelop

C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.

Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel pero con muchas características de bajo nivel.


Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas.


Traductor: es un programa que convierte un programa escrito en un lenguaje determinado en otro de diferente lenguaje para luego ser ejecutado. El lenguaje en el que está escrito el programa original se llama lenguaje fuente, y el lenguaje al que se convierte se llama lenguaje objetivo.



Intérprete: es un programa que analiza y ejecuta un programa escrito en el lenguaje fuente original sin efectuar una traducción y generar otro programa. Lo hace instrucción por instrucción. Esta técnica utilizada se llama interpretación.

Todo depende de la relación entre el lenguaje fuente y el lenguaje objetivo, existen dos tipos de traductores: los ensambladores y los compiladores.

Si el lenguaje fuente es en lo esencial una representación simbólica de un lenguaje de maquina numérico, el traductor se llama ensamblador y el lenguaje fuente se llama lenguaje ensamblador. Si el lenguaje fuente es un lenguaje de alto nivel (aquel que se aproxima más al lenguaje natural de las personas) como Java o C y el lenguaje objetivo es un lenguaje de maquina o una representación simbólica de tal lenguaje, el traductor se llama compilador.



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 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 la actualidad, 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 micro ordenadores 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á una sola sentencia.


Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo.

Programación estructurada (PE)

La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.

Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.

Esta técnica incorpora: 

Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas.
Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
Estructuras básicas: existen tres tipos de estructuras básicas:
Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.

Las principales ventajas de la programación estructurada son: 

Los programas son mas fáciles de entender
Se reduce la complejidad de las pruebas
Aumenta la productividad del programador
Los programas queden mejor documentados internamente.

Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.

Programación modular 

En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.


En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.

A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.

Programación orientada a objetos (POO) 

Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.

El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.

El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.

Programación concurrente 

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.

Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.

Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.

Programación funcional 

Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.

Programación lógica 

Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).
para saber mas entra a desarrolloweb

En la programación estructurada hay un inicio y un fin perfectamente bien definido de acuerdo al diagrama de flujo que se planteó al concebir la idea del programa.

Un programa bien estructurado debería tener algún subprograma que capture cualquier error dentro del programa principal o de cualquier subprograma dentro de la aplicación de tal modo que el subprograma que captura los errores genere un registro de datos que describa el error generado y/o en qué subprograma se generó el error para posteriormente corregirlo. Para facilitar la corrección de estos errores se hace uso de los comentarios agregados en el código fuente.ama fuente a código maquina y seguidamente lo ejecuta.


Los lenguajes de programación son lenguajes creado por el ser humano para poder comunicarse con las computadoras. Estos son un conjunto de símbolos y palabras que permiten al usuario de una computadora darle instrucciones y órdenes para que esta las pueda realizar.

Existen diferentes clases o tipos de lenguajes de programación:
1º El Lenguaje Máquina: es el lenguaje de programación que entiende directamente la computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir, el 0 y el 1. Con estos dos únicos dígitos, conocidos como bits, forma las cadenas binarias (combinaciones de ceros y unos) son con las que se escriben las instrucciones que el microprocesador de la computadora entiende nuestra peticiones. El lenguaje máquina fue el primer lenguaje de programación. Dejo de usarse por su gran dificultad y por la facilidad para cometer errores.

2º Lenguajes de Programación de Bajo Nivel: Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la computadora como sucedía con el lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de programación de bajo nivel que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos. El programa fuente es un conjunto de instrucciones escrito en lenguaje ensamblador, y cuyo objeto es la traducción a lenguaje máquina del programa fuente. Los lenguajes de este tipo son agiles, difíciles de usar, específicos de cada procesador, si nos llevamos el programa a otro computador será preciso reescribir el programa desde el comienzo.


3º Lenguajes de Programación de Alto Nivel: Este lenguaje es independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano. Necesitan un programa interprete o compilador que lo traduzca uno de bajo nivel, como el lenguaje de máquina para que la computadora pueda entenderlo. Este tipo de lenguaje es más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo: palabras en inglés. Este es el caso del BASIC, el lenguaje de programación más conocido.

Existen muchos lenguajes de programación de alto nivel con sus diferentes versiones. Por esta razón es difícil su tipificación, pero una clasificación muy extendida desde el punto de vista de su forma de trabajar y la filosofía de su creación es la siguiente:
Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y Ada.
Lenguajes de programación declarativos: el Lisp y el Prolog.
Lenguajes de programación orientados a objetos: el Smalltalk y el C++.
Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para gestión.


Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el diseño y la construcción de programas al lenguaje de las personas.
Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en cuenta el desarrollo de las computadoras según sus diferentes generaciones:

Lenguajes de programación de primera generación: el lenguaje máquina y el ensamblador.

Lenguajes de programación de segunda generación : los primeros lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL).

Lenguajes de programación de tercera generación: son lenguajes de programación de alto nivel imperativo pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).

Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y manejo de bases de dados (NATURAL, SQL).
Lenguajes de programación de quinta generación: creados para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).
 mas informacion entra a revistainformativa



Estructurados: en esta programación se utiliza una técnica que genera programas que solo permiten utilizar tres estructuras de control: Secuencias, Alternativas, Iterativas.

Desordenada: se llama así a la programación que se realizan en los albores de la informática. En este estilo de programación, predomina el instinto del programador por encima del uso de cualquier método lo que provoca que la corrección y entendimiento de este tipo de programas sea casi ininteligible.

Modular: permite la definición de módulos independientes cada uno de los cuales se encargara de una tarea del programa.

Orientado a objeto: es la más novedosa, se basa en intentar que el código de los programas se parezca lo más posible a la forma de pensar de las personas. Las aplicaciones se representan en esta programación como una serie de objetos independientes que se comunican entre sí.


Los lenguajes de programación: son notaciones que permiten escribir programas a través de los cuales podemos comunicarnos con la computadoras siguiendo normas sintaxis.

Los ensambladores: son los encargados de transformar o traducir los programas escritos en ensamblador a su equivalente en código máquina o binario para que pueda ser ejecutado por la CPU.

El intérprete: es un programa encargado de procesar y traducir cada instrucción o sentencia de un programa escrito en un lenguaje de alto nivel a código maquina después de ejecutarla.
Un copilador: es un programa traductor que a diferencia de los intérpretes, lleva a cabo la frase de traducción de dos formas, primero traduce completamente el programa fuente a código maquina y seguidamente lo ejecuta.
para mas informacion entra a wikibooks




Confiabilidad, es decir, el programa debe funcionar en prácticamente cualquier situación.

Debe advertir los errores de entrada comunes y obvios.

Deben ser bien estructurados, es decir, programas que utilicen organizaciones de la programación estructurada.

Estar adecuadamente documentado y ser comprensible, no sólo para quien lo crea, sino para otros programadores. Esto es para facilitar las futuras y muy posibles modificaciones que requiera.

Otras características


1. Una interfaz amigable para el usuario. 
2. Fácil de usar para el usuario. 
3. Portabilidad de datos a nuevas versiones. 
4. Depuración. 
5. Puesta en marcha. 
6. Mantenimiento. 
7. Manual del usuario. 1. Una interfaz amigable para el usuario. 

2. Fácil de usar para el usuario. 
3. Portabilidad de datos a nuevas versiones. 
4. Depuración. 
5. Puesta en marcha. 
6. Mantenimiento. 
7. Manual del usuario.
Copyright © 2012 Encuentra todas tus tareas en