Download ¿qué es lenguaje de programación?
Document related concepts
Transcript
¿QUÉ ES PROGRAMACIÓN? La programación es el proceso de diseñar, codificar, mejorar 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 muestren un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos de 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. ¿QUÉ ES LENGUAJE DE PROGRAMACIÓN? Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, esencialmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML. Según la forma de ejecución LENGUAJES COMPILADOS Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema. Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código. LENGUAJES INTERPRETADOS Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción. ALGUNOS LENGUAJES DE PROGRAMACIÓN: ABAP FORTRAN Parlog ABC Gambas Perl Ada GML PHP GRAFCET PL/1 ActionScri p FP Plankalkül Afnix ALGOL APL ASP ASP.NET AWK B BASIC BCPL Befunge Boo C C++ C# Caml Clipper CLIPS CLU COBOL CORAL Haskell PostScript Icon PowerBuilder Inform Prolog INTERCA Python L Rapid ISWIM REXX J RPN Java RPG JavaScript Ruby Joy Sail KWC Sather LADDER Scheme Lexico Scriptol Lingo Seed7 Lisp Self Logo Sh Lua Simula MAGIC Mainsail Smalltalk Mesa SPARK Miranda ML Squeak Modula Standard ML Modula-2 TI-Basic Modula-3 TCL Natural VBA Snobol D Delphi DIV Dylan Eiffel Erlang Ensamblad NetREXX Visual Basic Extended Oberon Visual C++ Euphoria Object Visual DialogScript Fénix FlowForth SR Objective- Visual Foxpro Ocaml Yurix Occam ZPL Oz Pascal ¿PARA QUE PROGRAMAMOS? Diremos por tanto que programar es definir instrucciones para ser ejecutadas por un ordenador. El resultado de esta tarea es un paquete de instrucciones al que llamamos programa. El objetivo de programar suele ser resolver un problema. Vayamos por partes. Para definir instrucciones a un ordenador hemos de utilizar un lenguaje o código específico, que ha sido prediseñado con el fin de que la interpretación de cada instrucción sea unívoca. No hay libertad de interpretación o subjetivismo. Si el lenguaje que utilicemos acepta la sintaxis: Mostrar 3+3, utilizar Muéstrame 3+3sería una orden nula o carente de significado para el ordenador, por lo que probablemente nos invitará a corregirla o simplemente nos dirá "Error". Los lenguajes de programación, salvando las distancias, tienen similitudes con las lenguas humanas: evolucionan (p. ej. aumentan o disminuyen el número de vocablos), se expanden internacionalmente y triunfan si gran número de personas se decide a utilizarlos, o caen en desuso y se convierten en lenguas fósiles. Igualmente pueden ser más o menos fáciles de aprender, más o menos ricos envocablos, y más o menos fuertes para resistir el embate de las necesidades de los programadores. Hablaremos de ello en otros artículos. ¿CON CUÁNTOS LENGUAJES PODEMOS DAR INSTRUCCIONES A UN ORDENADOR? Pues con muchos, la única salvedad a tener en cuenta es que no podemos “hablarle” directamente: necesitaremos un intérprete o programa específico para escribir instrucciones. Este intérprete suele recibir el mismo nombre que el lenguaje (p. ej. Turbopascal o Visual Basic) y lo instalamos en nuestro ordenador accediendo a éste desde el sistema operativo. Muchos programadores disponen de varios lenguajes en sus ordenadores y los utilizan en función de sus necesidades. Para empezar diremos que uno es suficiente para una persona que va a iniciarse en programación. ¿PARA QUÉ SIRVE PROGRAMAR? La respuesta es un tanto ambigua, pero es esta: para todo. Atendiendo a que los ordenadores intervienen en la casi totalidad de las actividades que realiza el ser humano, y que la programación es lo que hace funcionar a los ordenadores, he aquí que programar sirve para todo. Quizás aclaremos poco diciendo esto, pero es difícil hacer una lista de cosas para las que sirve programar, porque sería infinita. Efectivamente, los ordenadores intervienen ya en todas las facetas de la vida y actividad humanas, en procesos tan dispares como la producción industrial, la enseñanza o el control de tráfico. TIPOS DE PROGRAMACIÓN: PROGRAMACIÓN ESTRUCTURADA La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN). ESTRUCTURA SECUENCIAL Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior. Ejemplo: INPUT x INPUT y Auxiliar= x x= y y= auxiliar PRINT x PRINT y Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia. 1º Guardamos una copia del valor de x en auxiliar. 2º Guardamos el valor de y en x, se pierde el valor anterior de x pero no importa porque tenemos una copia en auxiliar. 3º Guardamos en y el valor de auxiliar, que es el valor inicial de x. El resultado es el intercambio de los valores de x e y, en tres operaciones secuenciales. ESTRUCTURA SELECTIVA O DE SELECCIÓN La estructura selectiva permite la realización de una instrucción u otra según un criterio, solo una de estas instrucciones se ejecutara. Ejemplo: IF a > b THEN PRINT a ; " es mayor que " ; b ELSE PRINT a ; " no es mayor que " ; b END IF Esta instrucción selectiva puede presentar dos mensajes, uno a es mayor que b, y el otro a no es mayor que b, solo uno de ellos será presentado, según el resultado de la comparación de a y b, si el resultado de a > b es cierto, se presenta el primer mensaje, si es falso el segundo, las palabras IF, THEN, ELSE, END IF; son propias de la instrucción (palabra reservadas) que tienen un significado en el lenguaje, sirven de separadores, y el usuario no debe utilizarlas salvo para este fin. IF señala el comienzo de la instrucción condicional, y se espera que después esté la condición de control de la instrucción. THEN señala el fin de la condición, y después estará la instrucción a realizar si la condición es cierta. ELSE separa la instrucción que se ejecutará si la condición es cierta de la que se ejecutará si es falsa. END IF indica que la instrucción condicional finaliza y el programa seguirá su curso. ESTRUCTURA ITERATIVA Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condición, en un principio el número de iteraciones no tiene porque estar determinado. Ejemplo: a= 0 b= 7 WHILE b > a DO PRINT a a= a + 1 WEND Esta instrucción tiene tres palabras reservadas WHILE, DO y WEND. WHILE: señala el comienzo del bucle y después de esta palabra se espera la condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no al final de la instrucción mientras. DO: señala el final de la condición, lo que esté después será el cuerpo del bucle. WEND: señala el final del cuerpo del bucle y de la instrucción WHILE. El bucle mientras, se repite mientras la condición sea cierta, esta condición se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condición es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condición sea cierta. En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7. La condición del bucle es b > a. Cuando a=0 y b=7. la condición es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7. Cuando a=6 y b=7. la condición es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad. Resultando que a=7 y b=7. Entonces la condición es falsa y la instrucción WHILE finaliza. La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6 LA PROGRAMACION MODULAR La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver. Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down). Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida. Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la práctica es común representarlos con procedimientos y funciones. Adicionalmente, también Pueden considerarse módulos las librerías que pueden incluirse en un programa o, en programación orientada a objetos, la implementación de un tipo de dato abstracto. ¿QUÉ ES SOFTWARE? El Software es algo que notamos poco por que quizás a veces lo pasamos por desapercibido debido a que parte importante de el no es visible a nuestros ojos, pero sabias que si no hubiera existido el software no estuvieras manejando los programas en tu computadora, ya que el software se ocupa de mandar instrucciones a la computadora ya que mediante el se ejecuta el sistema operativo del equipo. El Hardware de la Computadora necesita del software para poder funcionar, si no existiese seria como una herramienta sin utilidad para ningún fin, es aquí donde el Hardware y el Software se necesitan para cumplir tareas que el otro no puede realizar. El Software se puede dividir hasta en tres tipos principales: Tipos de software: Software de sistema: La función del Software de Sistema es proveer de las instrucciones al sistema operativo para así el usuario tener un control en la que puede gestionar los controladores, diagnosticar el hardware, controlar los programas mediante el uso del sistema operativo. Software de Programación: Es todo lo referente hacia lo que maneja el usuario para desarrollar aplicaciones y programas informáticos mediante lenguajes de programación, puede incluir desde editores de texto hasta compiladores de documentos. Software de Aplicación: Son los programas que contienen varias instrucciones para ayudar a gestionar al usuario para controlar algo, por citar un ejemplo son softwares que están construidos a medida y exigencias del usuario. GRAFICADORES: Los graficadores son programas informáticos que gracias a dibujos vectoriales o mapa de bits, representación de una imagen por pequeños puntos o píxeles con un color y luminosidad determinada, nos ayudan a crear ilustraciones desde un logotipo o cualquier otra ilustración profesional. Con lo que la función de los graficadores consiste en ayudarnos en el diseño de cualquier ilustración, sea un simple logotipo o una ilustración profesional. Otra función de los graficadores es como instrumento pedagógico en el aprendizaje de las funciones y en la geometría. Diversos estudios sobre como enseñarles a los alumnos la representación gráfica de funciones, estudios sobre trigonometría aconsejan que se aproveche mucho más si se ayudan de los recursos informáticos, con el empleo de los graficadores. Uno de los programas graficadores más conocidos es el gnuplot. Es un programa muy versátil que realiza gráficas de funciones y datos. Este programa es compatible con la mayoría de los sistemas operativos. El gnuplot reproduce directamente en la pantalla de la computadora una gran variedad de formatos de imagen. Formatos como PNG, EPS, SVG, JPEG, etc. y se pueden usar interactivamente o por grupos. La algorítmica consiste en el desarrollo de soluciones computacionales a los diferentes problemas que se plantean en el desarrollo de un programa. Dichas soluciones son independientes del lenguaje de programación utilizado, puesto que son resueltos en un nivel de abstracción mayor. Muchas soluciones algorítmicas se basan en las diferentes estructuras de datos como apoyo fundamental a la hora de resolver problemas. Debido a este motivo, es importante conocer las diferentes estructuras con el objetivo de aplicar la estructura más adecuada al tipo de problema con el cual nos enfrentamos. ¿PARA QUÉ SIRVE UN ALGORITMO? Sirve para que ya sea que un programador o un grupo de personas sigan un patrón para poder crear un programa o lograr utilizar un programa. ¿QUÉ ES UN ALGORITMO? Un algoritmo no es más que una serie de pasos lógicos que se deben seguir para solucionar un problema del mundo real. Nótese que diferentes personas pueden dar diferentes soluciones para el mismo problema, por lo cual no podemos decir que exista una sola serie de pasos lógicos para solucionar un problema. ¿PARA QUE SIRVEN LOS ALGORITMOS?: Los algoritmos tienen muchas aplicaciones, una de las más importantes es en el ámbito de la informática. Cuando usted ejecuta una aplicación (como el web browser que está utilizando para ver esta página), en realidad está desencadenando una serie de pasos lógicos que son leídos e interpretados por el computador. Por lo tanto, se deduce que los algoritmos sirven para programar computadores. Además de esto, los algoritmos nos sirven para modelar procesos o incluso un procedimiento (ya sea de ingeniería, médico, etc.). ¿QUÉ ES UN DIAGRAMA DE FLUJO? Un diagrama de flujo es una representación gráfica de un proceso. cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso. el diagrama de flujo ofrece una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las operaciones de interdepartamentales… facilita también la selección de indicadores de proceso BENEFICIOS DEL DIAGRAMA DE FLUJO En primer lugar, facilita la obtención de una visión transparente del proceso, mejorando su comprensión. El conjunto de actividades, relaciones e incidencias de un proceso no es fácilmente discernible a priori. La diagramación hace posible aprehender ese conjunto e ir más allá, centrándose en aspectos específicos del mismo, apreciando las interrelaciones que forman parte del proceso así como las que se dan con otros procesos y subprocesos. Permiten definir los límites de un proceso. A veces estos límites no son tan evidentes, no estando definidos los distintos proveedores y clientes (internos y externos) involucrados. El diagrama de flujo facilita la identificación de los clientes, es más sencillo determinar sus necesidades y ajustar el proceso hacia la satisfacción de sus necesidades y expectativas. Estimula el pensamiento analítico en el momento de estudiar un proceso, haciendo más factible generar alternativas útiles. Proporciona un método de comunicación más eficaz, al introducir un lenguaje común, si bien es cierto que para ello se hace preciso la capacitación de aquellas personas que entrarán en contacto con la diagramación. Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades que componen el proceso. Igualmente, constituye una excelente referencia para establecer mecanismos de control y medición de los procesos, así como de los objetivos concretos para las distintas operaciones llevadas a cabo. Facilita el estudio y aplicación de acciones que redunden en la mejora de las variables tiempo y costes de actividad e incidir, por consiguiente, en la mejora de la eficacia y la eficiencia. Constituyen el punto de comienzo indispensable para acciones de mejora o reingeniería. Todas estas razones apuntan hacia el diagrama de flujo como un instrumento primordial para la correcta gestión de los procesos. ELABORACIÓN DEL DIAGRAMA DE FLUJO El diagrama de flujo debe ser realizado por un equipo de trabajo en el que las distintas personas aporten, en conjunto, una perspectiva completa del proceso, por lo que con frecuencia este equipo será multifuncional y multi-jerárquico. A continuación se presenta un ejemplo de diagrama de flujo de proceso. La elaboración de un diagrama de flujo es facilitada por diversas herramientas informáticas. ¿PARA QUE NOS SIRVEN LOS DIAGRAMAS DE FLUJOS? Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado. Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el programa en cualquier idioma de alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de un programa complejo. ¿QUÉ ES DIAGRAMACIÓN? La diagramación, también llamada maquetación, es un oficio del Diseño editorial que se encarga de organizar en un espacio, contenidos escritos, visuales y en algunos casos audiovisuales (multimedia) en medios impresos y electrónicos, como libros, diarios y revistas. Estrictamente, el acto de diagramar tan solo se relaciona con la distribución de los elementos en un espacio determinado de la página, mientras que el Diseño editorial incluye fases más amplias del proceso, desde el proyecto gráfico, hasta los procesos de producción denominados pre-prensa (preparación para impresión), prensa (impresión) y post-prensa (acabados). Sin embargo, usualmente todo el aspecto gráfico de la actividad editorial y periodística se conoce por el término diagramación. En el caso de un diario, la diagramación sigue los objetivos y líneas gráficas y editoriales de ese impreso. Las principales líneas editoriales para la diagramación de un diario incluyen la jerarquización de los artículos por orden de importancia. Las consideraciones gráficas incluyen legibilidad e incorporación balanceada y noobstructiva de los anuncios publicitarios. La edición incorpora principios del Diseño gráfico que, a su vez, es una profesión independiente o presente en licenciaturas relacionadas con el diseño, más allá de ser una disciplina que hace parte del currículo de profesiones como el Periodismo, la Publicidad y algunos cursos de Arquitectura en universidades y facultades. Otros términos que sirven para referirse al proceso de diagramación son: layout, makeup o pasteup.