Download ¿qué es lenguaje de programación?

Document related concepts

Little man computer wikipedia , lookup

Programación funcional wikipedia , lookup

Logo (lenguaje de programación) wikipedia , lookup

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.