ANÁLISIS DEL PROBLEMA
Cuando un usuario plantea un programador un problema que resuelve mediante su ordenador, por lo general ese usuario tendrá conocimientos más o menos amplios sobre el dominio del problema, pero no es habitual que tenga conocimientos de información por el informático que se va a resolver un determinado problema puede ser un experto programador pero en principio no tiene porque conocer el dominio del problema.
Al abordar un problema que se quiere resolver mediante un ordenador, el programador necesita de la experiencia del experto del dominio para entender el problema.
Función del problema necesita de especificaciones es decir: entrada que son todos los datos que hay que ingresar para la resolución del problema, el proceso que son los diferentes procedimientos en los cuales se utilizaran los datos proporcionados para resolver el problema.
LA FUNCIÓN DEL ANÁLISIS
La parte esencial de la planeación y diseño la constituye el análisis de los sistemas hipotéticos desde el punto de vista de los objetivos de las preposiciones y de las condiciones limitativas.
Herramientas
Seleccionar herramienta correcta para un análisis dado
Reconocer el momento en que se deba retroceder para adquirir mayores facilidades.
Consultar con los expertos y estar en capacidad de entenderse en el mismo lenguaje.
viernes, 9 de septiembre de 2011
Ejecutable, Interfaz de Linea de Comando (Investigado)
En informática, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).
Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto.
Sin embargo en un sentido más general, un programa ejecutable no tiene por qué necesariamente contener código de máquina, sino que puede tener instrucciones a interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre de scripts.
Determinar si un archivo es ejecutable es sobre todo una cuestión de convención. Unos sistemas operativos se basan en la extensión de archivo (como la terminación .exe) y otros lo hacen leyendo los metadatos (como los bits de permiso de ejecución en Unix).
En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información que no es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno de ejecución, información simbólica y de depuración, u otra información que ayude al sistema operativo a ejecutar el programa.

Interfaz de Línea de Comandos (CLI), por su acrónimo en inglés de Command Line Interface (CLI), es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de Terminal no son lo mismo, aunque suelen utilizarse como sinónimos.
Las CLI pueden emplearse interactívamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (batch), leyendo comandos desde un archivo de scripts.
Esta interfaz existe casi desde los comienzos de la computación, superada en antigüedad solo por las tarjetas perforadas y mecanismos similares. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad.
Por ejemplo, las CLI son parte fundamental de los Shells o Emuladores de Terminal. Aparecen en todos los desktops (Gnome, KDE, Windows) como un método para ejecutar aplicaciones rápidamente. Aparecen como interfaz de lenguajes interpretados tales como Java, Python, Ruby o Perl. También se utilizan en aplicaciones cliente-servidor, en DBs (Postgres, MySQL, Oracle), en clientes FTP, etc. Las CLI son un elemento fundamental de aplicaciones de ingeniería tan importantes como Matlab y Autocad.
La contraparte de CLI es la interfaz gráfica de usuario (GUI) que ofrece una estética mejorada y una mayor simplificación, a costa de un mayor consumo de recursos computacionales, y, en general, de una reducción de la funcionalidad alcanzable. Asimismo aparece el problema de una mayor vulnerabilidad por complejidad.
Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos científicos y de ingeniería, y un subconjunto más pequeño de usuarios domésticos avanzados.
En dispositivos portables y PDAs (como el iPhone), las CLI no se utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la ausencia total de teclados.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).
Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto.
Sin embargo en un sentido más general, un programa ejecutable no tiene por qué necesariamente contener código de máquina, sino que puede tener instrucciones a interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre de scripts.
Determinar si un archivo es ejecutable es sobre todo una cuestión de convención. Unos sistemas operativos se basan en la extensión de archivo (como la terminación .exe) y otros lo hacen leyendo los metadatos (como los bits de permiso de ejecución en Unix).
En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información que no es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno de ejecución, información simbólica y de depuración, u otra información que ayude al sistema operativo a ejecutar el programa.


Interfaz de Línea de Comandos (CLI), por su acrónimo en inglés de Command Line Interface (CLI), es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de Terminal no son lo mismo, aunque suelen utilizarse como sinónimos.
Las CLI pueden emplearse interactívamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (batch), leyendo comandos desde un archivo de scripts.
Esta interfaz existe casi desde los comienzos de la computación, superada en antigüedad solo por las tarjetas perforadas y mecanismos similares. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad.
Por ejemplo, las CLI son parte fundamental de los Shells o Emuladores de Terminal. Aparecen en todos los desktops (Gnome, KDE, Windows) como un método para ejecutar aplicaciones rápidamente. Aparecen como interfaz de lenguajes interpretados tales como Java, Python, Ruby o Perl. También se utilizan en aplicaciones cliente-servidor, en DBs (Postgres, MySQL, Oracle), en clientes FTP, etc. Las CLI son un elemento fundamental de aplicaciones de ingeniería tan importantes como Matlab y Autocad.
La contraparte de CLI es la interfaz gráfica de usuario (GUI) que ofrece una estética mejorada y una mayor simplificación, a costa de un mayor consumo de recursos computacionales, y, en general, de una reducción de la funcionalidad alcanzable. Asimismo aparece el problema de una mayor vulnerabilidad por complejidad.
Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos científicos y de ingeniería, y un subconjunto más pequeño de usuarios domésticos avanzados.
En dispositivos portables y PDAs (como el iPhone), las CLI no se utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la ausencia total de teclados.
jueves, 8 de septiembre de 2011
Ejecutable, Interfaz de Linea de Comando (clase)
Ejecutables
Un ejecutable es tradicionalmente un archivo binario cuyo contenido se interpreta por el odenador como un programa.
Dependiendo el tipo de que se trates las instrucciones hablaremos de ejecutables portables y no portables.
Un programa ejecutable no tiene por que nescesariamente contener codifo fr maquina si no puede tener instrucciones a interpretar por otro programa.
Enla mayoría de los sistemas modernos un ejecutable contiene mucha información que no es del programa en si.
Interfaz de línea de comando
Es un método que permite a las personas dar intrcciones a algún programa informatico por medio de texto simple.. pueden emplearse interactivamente escribiendo instrucciones en alguna especie de entrada de texto o pueden utilitarse de una forma mucho mas automatizada, leyendo comandos desde un archivo de scrips.
Los CLI (comando linde interface). Existen para diversos programas y sistemas operativos para diversos hardware y con diferente funcionalidad, son usados por programas y suministradores de sistema como herramientas primaria de trabajo, especialmente en sistemas operativos basados en unix.
Ejemplo de interaccion por CLI
Un ejecutable es tradicionalmente un archivo binario cuyo contenido se interpreta por el odenador como un programa.
Dependiendo el tipo de que se trates las instrucciones hablaremos de ejecutables portables y no portables.
Un programa ejecutable no tiene por que nescesariamente contener codifo fr maquina si no puede tener instrucciones a interpretar por otro programa.
Enla mayoría de los sistemas modernos un ejecutable contiene mucha información que no es del programa en si.
Interfaz de línea de comando
Es un método que permite a las personas dar intrcciones a algún programa informatico por medio de texto simple.. pueden emplearse interactivamente escribiendo instrucciones en alguna especie de entrada de texto o pueden utilitarse de una forma mucho mas automatizada, leyendo comandos desde un archivo de scrips.
Los CLI (comando linde interface). Existen para diversos programas y sistemas operativos para diversos hardware y con diferente funcionalidad, son usados por programas y suministradores de sistema como herramientas primaria de trabajo, especialmente en sistemas operativos basados en unix.
Ejemplo de interaccion por CLI

miércoles, 7 de septiembre de 2011
Editores de Texto, Compiladores e intérpretes (Investigado)
PROCESADOR DE TEXTO
Un procesador de texto es una aplicación informática destinada a la creación o modificación de documentos escritos por medio de una computadora. Representa una alternativa moderna a la antigua máquina de escribir, siendo mucho más potente y versátil que ésta.

FUNCIONES
Los procesadores de textos nos brindan una amplia gama de funcionalidades, ya sean tipografías, idiomáticas u organizativas, con algunas variantes según el programa de que se disponga. Como regla general, todos pueden trabajar con distintos tipos y tamaños de letra, formato de párrafo y efectos artísticos; además de brindar la posibilidad de intercalar o superponer imágenes u otros objetos gráficos dentro del texto.
EJEMPLOS DE PROCESADORES DE TEXTO
Wordpad
Ms Word
Oppen office
EDITORES DE TEXTO
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.
FUNCIONES TÍPICAS DE UN EDITOR DE TEXTO
Marcar región
Es la función que marca, visualmente o no, una parte del texto para ser elaborada con otras funciones. La región puede contener varias líneas del texto (región horizontal) o bien varias columnas adyacentes del texto (región vertical).
Búsqueda y reemplazo
El proceso de búsqueda de una palabra o una cadena de caracteres, en un texto plano y su reemplazo por otra. Existen diferentes métodos: global, por región, reemplazo automático, reemplazo con confirmación, búsqueda de texto o búsqueda de una Expresión regular
Copiar, cortar y pegar
Sirve para copiar, trasladar o borrar una región marcada.
Formatear
Los editores de texto permiten automatizar las únicas funciones de formateo que utilizan: quebrar la línea, intentar formatear comentarios o formatear listas.
Deshacer y rehacer
Consiste en que el programa editor va almacenando cada una de las operaciones hechas por el usuario hasta un número configurable. Si el usuario se arrepiente de algún cambio, por muy anterior que sea, el editor le permite revertir todos los cambios hechos hasta el número configurado. Rehacer es por consiguiente, revertir algo revertido.
Importar
Agregar o insertar el contenido de un archivo en el archivo que se está editando. Algunos editores permiten insertar la salida o respuesta a un programa cualquiera ejecutado en la Línea de comando al archivo que se está editando.
Filtros
Algunos editores de texto permiten hacer pasar las líneas del texto o de una región por algún programa para modificarlas u ordenarlas. Por ejemplo, para ordenar alfabéticamente una lista de nombres o sacar un promedio de una lista de números.
Acceso remoto
Un editor para trabajar en la administración de una red de computadoras debe ofrecer la funcionalidad de editar archivos en máquinas remotas, ya sea por medio de ftp, ssh o algún otro Protocolo de red. Emacs lo puede hacer mediante el Plugin tramp (ampliamente configurable con ssh, ftp, scp, sftp, etc.), Ultraedit, del ambiente Windows, lo hace mediante ftp.
EJEMPLOS DE EDITORES DE TEXTOS
Block de notas
Emacs
Vi
INTERPRETE
intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de maquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración, y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio.
COMPILADOR
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
PARTES DE UN COMPILADOR
Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las fases correspondientes al Análisis Lexico (que consiste en la descomposición del programa fuente en componentes léxicos), Análisis Sintático agrupación de los componentes léxicos en frases gramaticales ) y Análisis Semántico (comprobación de la validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico).
Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generación de Código (normalmente se trata de código intermedio o de código objeto) y de Optimización de Código (en las que se busca obtener un código lo más eficiente posible).
Front-end: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y está compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de Código Intermedio.
Back-end: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.
Un procesador de texto es una aplicación informática destinada a la creación o modificación de documentos escritos por medio de una computadora. Representa una alternativa moderna a la antigua máquina de escribir, siendo mucho más potente y versátil que ésta.

FUNCIONES
Los procesadores de textos nos brindan una amplia gama de funcionalidades, ya sean tipografías, idiomáticas u organizativas, con algunas variantes según el programa de que se disponga. Como regla general, todos pueden trabajar con distintos tipos y tamaños de letra, formato de párrafo y efectos artísticos; además de brindar la posibilidad de intercalar o superponer imágenes u otros objetos gráficos dentro del texto.
EJEMPLOS DE PROCESADORES DE TEXTO
Wordpad
Ms Word
Oppen office
EDITORES DE TEXTO
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.
FUNCIONES TÍPICAS DE UN EDITOR DE TEXTO
Marcar región
Es la función que marca, visualmente o no, una parte del texto para ser elaborada con otras funciones. La región puede contener varias líneas del texto (región horizontal) o bien varias columnas adyacentes del texto (región vertical).
Búsqueda y reemplazo
El proceso de búsqueda de una palabra o una cadena de caracteres, en un texto plano y su reemplazo por otra. Existen diferentes métodos: global, por región, reemplazo automático, reemplazo con confirmación, búsqueda de texto o búsqueda de una Expresión regular
Copiar, cortar y pegar
Sirve para copiar, trasladar o borrar una región marcada.
Formatear
Los editores de texto permiten automatizar las únicas funciones de formateo que utilizan: quebrar la línea, intentar formatear comentarios o formatear listas.
Deshacer y rehacer
Consiste en que el programa editor va almacenando cada una de las operaciones hechas por el usuario hasta un número configurable. Si el usuario se arrepiente de algún cambio, por muy anterior que sea, el editor le permite revertir todos los cambios hechos hasta el número configurado. Rehacer es por consiguiente, revertir algo revertido.
Importar
Agregar o insertar el contenido de un archivo en el archivo que se está editando. Algunos editores permiten insertar la salida o respuesta a un programa cualquiera ejecutado en la Línea de comando al archivo que se está editando.
Filtros
Algunos editores de texto permiten hacer pasar las líneas del texto o de una región por algún programa para modificarlas u ordenarlas. Por ejemplo, para ordenar alfabéticamente una lista de nombres o sacar un promedio de una lista de números.
Acceso remoto
Un editor para trabajar en la administración de una red de computadoras debe ofrecer la funcionalidad de editar archivos en máquinas remotas, ya sea por medio de ftp, ssh o algún otro Protocolo de red. Emacs lo puede hacer mediante el Plugin tramp (ampliamente configurable con ssh, ftp, scp, sftp, etc.), Ultraedit, del ambiente Windows, lo hace mediante ftp.
EJEMPLOS DE EDITORES DE TEXTOS
Block de notas
Emacs
Vi
INTERPRETE
intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de maquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración, y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio.
COMPILADOR
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
PARTES DE UN COMPILADOR
Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las fases correspondientes al Análisis Lexico (que consiste en la descomposición del programa fuente en componentes léxicos), Análisis Sintático agrupación de los componentes léxicos en frases gramaticales ) y Análisis Semántico (comprobación de la validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico).
Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generación de Código (normalmente se trata de código intermedio o de código objeto) y de Optimización de Código (en las que se busca obtener un código lo más eficiente posible).
Front-end: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y está compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de Código Intermedio.
Back-end: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.

martes, 6 de septiembre de 2011
Editores de Texto, Compiladores e intérpretes (Clase)
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.
Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que otros están diseñados para escribir o programar en un lenguaje. Algunos son muy sencillos, mientras que otros tienen implementadas gran cantidad de funciones... algunos ejemplos de los editores de texto son bloc de notas, emacs, gedit, kate entre otros.
Un compilador es un programa informático 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 de interpretar
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador en el lenguaje que compila ese compilador.
Un interprete de texto como su nombre lo dice es kien lo interpreta.. es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración... algunos ejemplos de interprete son perl, php, javascrip, asp.. entre otras.
Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que otros están diseñados para escribir o programar en un lenguaje. Algunos son muy sencillos, mientras que otros tienen implementadas gran cantidad de funciones... algunos ejemplos de los editores de texto son bloc de notas, emacs, gedit, kate entre otros.
Un compilador es un programa informático 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 de interpretar
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador en el lenguaje que compila ese compilador.
Un interprete de texto como su nombre lo dice es kien lo interpreta.. es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración... algunos ejemplos de interprete son perl, php, javascrip, asp.. entre otras.
sábado, 3 de septiembre de 2011
Programa, Programacion y Paradigmas de la Programacion (Investigado)
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.1 2 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
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 procesador, controladores de dispositivos hasta el contenido de la memoria RAM.[4] 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

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.[6]
Programas generados automáticamente
La programación automática es un estilo de programación que crea código fuente mediante clases genéricas, prototipos, plantillas, 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 procesador macro, 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 a computadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinámico ensamblado a partir de artículos. Las Wikis generan HTML, CSS, Java, y Javascript los cuales son interpretados por un navegador web.
Ejecución simultánea
Muchos programas pueden correr simultáneamente en la misma computadora, a lo cual se le conoce como multitarea y puede lograrse a través de mecanismos de software o de hardware. Los sistemas operativos modernos pueden correr varios programas a través del planificador de procesos — un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos están corriendo.[7] También se puede lograr la multitarea por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios núcleos pueden correr muchos programas a la vez.[8]
Categorías funcionales
Los programas se pueden categorizar según líneas funcionales. Estas categorías funcionales son software de sistema y software de aplicación. El software de sistema incluye al sistema operativo el cual acopla el hardware con el software de aplicación.[9] El propósito del sistema operativo es proveer un ambiente en el cual el software de aplicación se ejecuta de una manera conveniente y eficiente.[9] Además del sistema operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de sistema entonces es software de aplicación. El middleware también es un software de aplicación que acopla el software de sistema con la interfaz de usuario. También son software de aplicación los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones, como por ejemplo la necesidad de ordenamiento.
PROGRAMACION
La programación es el proceso de diseñar, escribir, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Historia
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.
En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario).
Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje máquina.1
Léxico y programación
La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).
En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.
Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
programación estructurada
programación modular
programación orientada a objetos (POO)
programación declarativa
Compilación
El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.
Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.
PARADIGMA DE PROGRAMACIÓN
Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
Ejemplo :
Probablemente el paradigma de programación que actualmente es el más usado a todos los niveles es la orientación a objeto. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptación a los cambios y escalabilidad. Con la orientación a objetos y características como el encapsulado, polimorfismo o la herencia se permitió un avance significativo en el desarrollo de software a cualquier escala de producción.
La orientación a objeto parece estar ligado en sus orígenes con lenguajes como Lisp y Simula aunque el primero que acuño el titulo de programación orientada a objetos fue Smaltalk
TIPOS DE PARADIGMAS DE PROGRAMACIÓN MÁS COMUNES
Imperativo o por procedimientos: es considerado el más común y está representado, por ejemplo, por C o BASIC.
Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.
Lógico: está representado por Prolog. Este es otro caso del paradigma declarativo.
Declarativo: por ejemplo la programación funcional, la programación lógica, o la combinación lógico-funcional.
Orientado a objetos: está representado por Smalltalk, un lenguaje completamente orientado a objetos.
Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.
Actualmente el paradigma de programación más usado es el de la programación orientada a objetos.
Fuente: www.wikipedia.com
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.1 2 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
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 procesador, controladores de dispositivos hasta el contenido de la memoria RAM.[4] 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

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.[6]
Programas generados automáticamente
La programación automática es un estilo de programación que crea código fuente mediante clases genéricas, prototipos, plantillas, 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 procesador macro, 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 a computadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinámico ensamblado a partir de artículos. Las Wikis generan HTML, CSS, Java, y Javascript los cuales son interpretados por un navegador web.
Ejecución simultánea
Muchos programas pueden correr simultáneamente en la misma computadora, a lo cual se le conoce como multitarea y puede lograrse a través de mecanismos de software o de hardware. Los sistemas operativos modernos pueden correr varios programas a través del planificador de procesos — un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos están corriendo.[7] También se puede lograr la multitarea por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios núcleos pueden correr muchos programas a la vez.[8]
Categorías funcionales
Los programas se pueden categorizar según líneas funcionales. Estas categorías funcionales son software de sistema y software de aplicación. El software de sistema incluye al sistema operativo el cual acopla el hardware con el software de aplicación.[9] El propósito del sistema operativo es proveer un ambiente en el cual el software de aplicación se ejecuta de una manera conveniente y eficiente.[9] Además del sistema operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de sistema entonces es software de aplicación. El middleware también es un software de aplicación que acopla el software de sistema con la interfaz de usuario. También son software de aplicación los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones, como por ejemplo la necesidad de ordenamiento.
PROGRAMACION
La programación es el proceso de diseñar, escribir, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Historia
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.
En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario).
Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje máquina.1
Léxico y programación
La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).
En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.
Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
programación estructurada
programación modular
programación orientada a objetos (POO)
programación declarativa
Compilación
El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.
Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.
PARADIGMA DE PROGRAMACIÓN
Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
Ejemplo :
Probablemente el paradigma de programación que actualmente es el más usado a todos los niveles es la orientación a objeto. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptación a los cambios y escalabilidad. Con la orientación a objetos y características como el encapsulado, polimorfismo o la herencia se permitió un avance significativo en el desarrollo de software a cualquier escala de producción.
La orientación a objeto parece estar ligado en sus orígenes con lenguajes como Lisp y Simula aunque el primero que acuño el titulo de programación orientada a objetos fue Smaltalk
TIPOS DE PARADIGMAS DE PROGRAMACIÓN MÁS COMUNES
Imperativo o por procedimientos: es considerado el más común y está representado, por ejemplo, por C o BASIC.
Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.
Lógico: está representado por Prolog. Este es otro caso del paradigma declarativo.
Declarativo: por ejemplo la programación funcional, la programación lógica, o la combinación lógico-funcional.
Orientado a objetos: está representado por Smalltalk, un lenguaje completamente orientado a objetos.
Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.
Actualmente el paradigma de programación más usado es el de la programación orientada a objetos.
Fuente: www.wikipedia.com
viernes, 2 de septiembre de 2011
Programa, Programacion y Paradigmas de la Programacion (clase)
Programa: es un conjunto de instrucciones u órdenes basadas en un lenguaje de programación que una computadora interpreta para resolver un problema o una función específica.
Programación: es el proceso de diseñar, escribir y mantener el código fuente de programas computacionales; el código fuente es escrito en un lenguaje de programación, su propósito es crear programas que muestren un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Paradigmas de la programación: 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 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.
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.
Programación: es el proceso de diseñar, escribir y mantener el código fuente de programas computacionales; el código fuente es escrito en un lenguaje de programación, su propósito es crear programas que muestren un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Paradigmas de la programación: 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 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.
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.
jueves, 1 de septiembre de 2011
Algoritmo Diagrama de flujo y Lenguaje de programacion (Investigacion)
En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y éste a su vez del matemático persa Al Juarismi1 ) 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.2 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.1
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 en matemá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.
Definición formal
En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.
Medios de expresión de un algoritmo
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.
La descripción de un algoritmo usualmente se hace en tres niveles:
Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
Diagrama de flujo
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.

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.
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
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 en matemá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.
Definición formal
En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.
Medios de expresión de un algoritmo
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.
La descripción de un algoritmo usualmente se hace en tres niveles:
Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
Diagrama de flujo
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.

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.
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Algoritmo Diagrama de flujo y Lenguaje de programacion (clase)
Un algoritmo es un metodo para resolver un paso... deben ser precisos (por que tiene un orden), presisos (para que sea correcto) y finitos (por que tienen fin ya k son codificados)...
Los algoritmos pueden ser formulas matematicas como suma y resta, perimetros, promedios... todo lo k tenga k ver con una formula.. (a + b + c)... tambien pueden ser cualquier estructivo.. (primero esto.. enseguida esto.. despues esto y al dinal esto).
EL algoritmo en forma grafica se llama Diagrama de flujo.. donde se utilizan simbolos para cada funcion como los de entrada y salida, los de proceso... los de proceso de decicion donde utilizamos el si y no... y inicio y fin...
Los algoritmos los utilizamos diario de manera inconsiente.. desde levantarnor o ir a hacer una compra.. por ejemplo el ir a la escuela primero levantarse.. enseguida bañarse o cambiarse.. de hay salir de la casa a agarrar el transporte... y asi hasta llegar a el fin...
El leguaje de programacion es un leguaje dieñado pra descrubir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto un lenguaje de programacion es un metodo practico para que los seres humanos puedan dar instrucciones a un quipo...
El leguaje utilizado por el procesador se denomina lenguaje maquina.. se trata de datos tal como llegan al procesador, que consisten en una serie de 1 y 0.
Existen varios tipos de leguajes de programacion.
*Lenguaje compilado
*Lenguaje Interpretado
*Lenguaje de programacion funcional
Los algoritmos pueden ser formulas matematicas como suma y resta, perimetros, promedios... todo lo k tenga k ver con una formula.. (a + b + c)... tambien pueden ser cualquier estructivo.. (primero esto.. enseguida esto.. despues esto y al dinal esto).
EL algoritmo en forma grafica se llama Diagrama de flujo.. donde se utilizan simbolos para cada funcion como los de entrada y salida, los de proceso... los de proceso de decicion donde utilizamos el si y no... y inicio y fin...
Los algoritmos los utilizamos diario de manera inconsiente.. desde levantarnor o ir a hacer una compra.. por ejemplo el ir a la escuela primero levantarse.. enseguida bañarse o cambiarse.. de hay salir de la casa a agarrar el transporte... y asi hasta llegar a el fin...
El leguaje de programacion es un leguaje dieñado pra descrubir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto un lenguaje de programacion es un metodo practico para que los seres humanos puedan dar instrucciones a un quipo...
El leguaje utilizado por el procesador se denomina lenguaje maquina.. se trata de datos tal como llegan al procesador, que consisten en una serie de 1 y 0.
Existen varios tipos de leguajes de programacion.
*Lenguaje compilado
*Lenguaje Interpretado
*Lenguaje de programacion funcional
Suscribirse a:
Entradas (Atom)