Vistas de página en total

martes, 27 de marzo de 2012

PROGRAMACIÓN

Lenguaje de programación


Un lenguaje de programación es un idioma artificial diseñado para expresarcomputaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa decomputadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
  • El desarrollo lógico del programa para resolver un problema en particular.
  • Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
  • Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
  • Prueba y depuración del programa.
  • Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

Lenguaje de máquina


Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto de instruccionesdisponibles pueda ser similar entre ellas.

Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero (0), y el uno (1), por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y delsistema binario en el diseño de este tipo de circuitos y en su programación.
Claude Elwood Shannon, en su Analysis of Relay and Switching Circuits, y con sus experiencias en redes de conmutación, sentó las bases para la aplicación del álgebra de Boole a las redes de conmutación.
Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se construyensistemas lógicos cada vez más complejos.
Shannon utilizaba el relé como dispositivo físico de conmutación en sus redes. El relé, a igual que una lámpara eléctrica, posee dos estados: 1 o 0, esto es, activado (encendido), o desactivado (apagado).
El desarrollo tecnológico ha permitido evolucionar desde las redes de relés electromagnéticos de Shannon a circuitos con tubos de vacío, luego a redes transistorizadas, hasta llegar a los modernoscircuitos integrados cuyas cúspide lo forman los circuitos microprogramados.

Lenguaje de alto nivel


Un lenguaje de programación de alto nivel de abstracción se caracteriza por expresar los algoritmos de una manera más cercana a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.
En los primeros lenguajes de alto nivel, la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.
Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generación o de alto nivel, en contraposición a los de bajo nivel o de nivel próximo a la máquina.

Lenguaje de bajo nivel

Es un lenguaje de programación de bajo nivel de abstracción es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware. 


Ejemplos de Lenguajes de Programación.

Fortran

Fortran (previamente FORTRAN) (contracción del inglés Formula Translating System) es un lenguaje de programación alto nivel de propósito general, procedimental e imperativo, que está especialmente adaptado al cálculo numérico y a la computación científica. Desarrollado originalmente por IBM en 1957 para el equipo IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar esta área de la programación desde el principio y ha estado en uso continuo por más de medio siglo en áreas de cómputo intensivo tales como la predicción numérica del tiempoanálisis de elementos finitosdinámica de fluidos computacional (CFD), física computacional, y química computacional. Es una de los lenguajes más populares en el área de la computación de alto rendimiento y es el lenguaje usado para programas que evalúan el desempeño (benchmark) y el ranking de los supercomputadores más rápidos del mundo.
El FORTRAN (una palabra compuesta, derivada de The IBM Mathematical Formula Translating System) abarca un linaje de versiones, cada una de las cuales evolucionó para añadir extensiones al lenguaje mientras que usualmente retenía compatibilidad con las versiones previas. Versiones sucesivas han añadido soporte para procesamiento de datos basados en caracteres (FORTRAN 77), programación de arreglos,programación modular y programación orientada a objetos (Fortran 90/95), y programación genérica (Fortran 2003).

COBOL


El lenguaje COBOL (acrónimo de COmmon Business-Oriented LanguageLenguaje Común Orientado a Negocios) fue creado en el año 1959 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión

Forth


Forth o FORTH es un lenguaje de programación para computadores y un ambiente de programación ideado por Charles H. Moore yElisabeth Rather entre los años 1965 y 1970 en el National Radio Astronomy Observatory de Kitt PeakArizona.
Su nombre es una contracción de la palabra inglesa fourth, dado que sus creadores le consideraban destinado a la cuarta generación de computadoras, pero la primera edición del lenguaje fue preparada para un IBM 1130, que solo permitía nombres con una longitud máxima de cinco letras; su nombre se quedó ya para siempre en FORTH. Forth es deletreado a veces con todas las letras en mayúsculas siguiendo el uso acostumbrado durante los primeros años, aunque el nombre no es un acrónimo.
Inicialmente diseñado para una aplicación muy concreta, la astronomía (cálculo de trayectorias de cuerpos en órbita, cromatografías, análisis de espectros de emisión), ha evolucionado hasta ser aplicable a casi todos los demás campos relacionados o no con esa rama de la ciencia (cálculos de probabilidad, bases de datos, análisis estadísticos y hasta financieros).
Posteriormente, un programa para la adquisición automática y continua de datos realizado en este lenguaje ha descubierto al menos la mitad de los cúmulos interestelares conocidos en la actualidad.

Ruby


Ruby es un lenguaje de programación interpretadoreflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perlcon características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como LispLuaDylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre

Java 


Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria. Con respecto a la memoria, su gestión no es un problema ya que ésta es gestionada por el propio lenguaje y no por el programador.
Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.
La implementación original y de referencia del compilador, la máquina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a través del Java Community Process, si bien otros han desarrollado también implementaciones alternativas de estas tecnologías de Sun, algunas incluso bajo licencias de software libre.
Entre diciembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java aún no lo es).

Python


Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetosprogramación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado ymultiplataforma.
Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License,1 que es compatible con laLicencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

APL


APL (A Programing Language, también conocido como Array Processing Language desde hace algunos años) es un lenguaje de programación interpretado desarrollado por Kenneth Iverson, de IBM, a finales de los años 60. 
Es un lenguaje muy conciso, con una sintaxis muy sencilla. Está orientado a trabajos con matrices, con la que se pueden hacer todo tipo de operaciones lógicas o matemáticas. Incluso se pueden definir nuevas operaciones matriciales.
Es de una potencia tremenda. Una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como por ejemplo Fortran. Como ejemplo, el lenguaje de simulación de circuitos, SIAL, ocupaba cerca de 25 000 sentencias en Fortran-Assembler y, al ser reescrito en APL, todo el programa se podía imprimir en dos folios.1 Por otra parte, a pesar de ser un lenguaje de tan alto nivel, también es capaz de manipular a escala de bits y tiene interfaces con lenguajes de programación de bajo nivel (C, ensamblador...) mediante los llamados procesadores auxiliares.
Tiene la propiedad de que desde una rutina se puede crear, compilar y ejecutar, en tiempo de ejecución, otras, lo que lo hace muy apropiado para la fabricación de compiladores e intérpretes.
Sus problemas radican en que:
  1. Necesita teclado especial para poner los operadores lógicos y simbólicos.
  2. Los programas escritos en APL son tan concisos que son difíciles de documentar y de comprender.

Lenguaje Ladder


El LADDER, también denominado lenguaje de contactos o en escalera, es un lenguaje de programación gráfico muy popular dentro de los autómatas programables debido a que está basado en los esquemas eléctricos de control clásicos. De este modo, con los conocimientos que todo técnico eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje. 

martes, 20 de marzo de 2012

Simbologìa de un diagrma de flujo.

Diagrama de flujo

El diagrama de flujo es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.

Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Las siguientes son acciones previas a la realización del diagrama de flujo:
  • Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
  • Definir qué se espera obtener del diagrama de flujo.
  • Identificar quién lo empleará y cómo.
  • Establecer el nivel de detalle requerido.
  • Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
  • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
  • Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
  • Si el nivel de detalle definido incluye actividades menores, listarlas también.
  • Identificar y listar los puntos de decisión.
  • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
  • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

Algoritmo

El algoritmo constituye un método para resolver un problema mediante una secuencia de pasos a seguir. Dicha secuencia puede ser expresada en forma de diagrama de flujo con el fin de seguirlo de una forma más sencilla.
De acuerdo con el concepto anterior, el algoritmo podría estar incluido en la definición de programa de ordenador de la Ley de Propiedad Intelectual (TRLPI), al referirse a éste como toda secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o indirectamente, en un sistema informático para realizar una función o una tarea o para obtener un resultado determinado, cualquiera que fuere su forma de expresión y fijación.


En matemáticas, ciencias 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 actividadDados 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 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.

Conjunto de instrucciones que aplicado a un número finito de datos, después de un número finito de iteraciones entrega un resultado.
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas como por ejemplo para poner una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas.
De un modo más formal, un algoritmo es una secuencia finita de instrucciones realizables, no ambiguas, cuya ejecución conduce a una resolución de un problema.
Otra definición de algoritmo es la siguiente: Un algoritmo es una metodologia para resolver un problemas mediante una serie de fases o etapas precisas, definidas y finitas.
El algoritmo nos da la solución genérica a un problema y lo podremos emplear todas las veces que se nos presente ese mismo problema: por ejemplo el algoritmo de la división es genérico e independiente de los números que tengamos que dividir.
Una vez descubierto un algoritmo para efectuar una tarea, la realización de ésta ya no requiere entender los principios en que se basa dicho algoritmo, pues el proceso se reduce a seguir las instrucciones del mismo. Por ejemplo, podemos hacer una división siguiendo el algoritmo sin entender por qué funciona el algoritmo. La inteligencia requerida para llevar a cabo la tarea está codificada en el algoritmo.

sábado, 5 de noviembre de 2011