¿Qué
es un lenguaje de programación?
En informática, se conoce como lenguaje de
programación a un programa destinado a la construcción de otros programas
informáticos. Su nombre se debe a que comprende un lenguaje formal que está
diseñado para organizar algoritmos y procesos lógicos que serán luego llevados
a cabo por un ordenador o sistema informático, permitiendo controlar así su
comportamiento físico, lógico y su comunicación con el usuario humano.
Dicho lenguaje está compuesto por símbolos y
reglas sintácticas y semánticas, expresadas en forma de instrucciones y
relaciones lógicas, mediante las cuales se construye el código fuente de una
aplicación o pieza de software determinado. Así, puede llamarse también
lenguaje de programación al resultado final de estos procesos creativos.
Generaciones
de lenguajes de programación
Primera generación: Los primeros ordenadores
se programaban directamente en código de máquina (basado en sistema binario),
que puede representarse mediante secuencias de ceros y unos sistema binario.
Cada modelo de ordenador tiene su propio código, por esa razón se llama
lenguaje de máquina u ordenadores.
1GL: Código máquina y Ensambladores
La primera generación de lenguajes de
programación consistía enteramente de una secuencia de 0s y 1s que los
controles de la computadora interpretan como instrucciones, eléctricamente.
Representan
los primeros lenguajes de programación que la computadora podía entender, son
conocidos como lenguaje máquina.
Segunda
generación: Los lenguajes simbólicos, asimismo propios de la máquina,
simplifican la escritura de las instrucciones y las hacen más legibles. También
surgieron en esta generación los lenguajes ensambladores.
2GL:
Primeros
lenguajes de alto nivel, no estructurados – Fortran, Cobol, Basic
La segunda generación de lenguajes de
programación consistía se identificaron como lenguajes ensambladores. Un
lenguaje ensamblador convierte las secuencias de 0s y 1s a un lenguaje
entendido por los seres humanos, como “añadir”, “sumar”, etc.
El código escrito en un lenguaje ensamblador
se convierte en lenguaje de máquina (1GL)
Tercera
generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas
por códigos independientes de la máquina, parecidas al lenguaje humano o al de
las Matemáticas.
3GL: Lenguajes estructurados: Algol, Pascal, C,
ADA.
Lenguajes
Específicos: Lisp, Prolog, Smalltalk
La tercera generación de lenguajes de
programación se conoce como lenguajes de alto nivel. Un lenguaje de alto nivel
tiene una gramática y sintaxis similar a las palabras en una oración. Un
compilador se encarga de traducir el lenguaje de alto nivel a lenguaje
ensamblador o código máquina.
Todos los lenguajes de programación de
software necesitan ser traducidos a código de máquina para una computadora para
utilizar las instrucciones que contienen.
Cuarta
generación:
Se ha dado este nombre a ciertas herramientas
que permiten construir aplicaciones sencillas combinando piezas prefabricadas.
Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes.
Algunos proponen reservar el nombre de cuarta generación para la programación
orientada a objetos.
Estos lenguajes tienen una estructura lo más
parecido al idioma inglés, algunas características son:
- Acceso a base de datos. - Capacidades Gráficas. - Generación de código automáticamente.
- Puede programarse visualmente como Visual
Basic (Programación Visual).
4GL:
Lenguajes Declarativos: SQL Generadores
de aplicaciones, Herramientas CASE (Computer Aided Software Engineering, ingeniería
de software asistida por computador).
Programación Visual: Visual Basic, Visual C
Lenguajes Orientados a Objeto C++, Java,
Eiffel
La cuarta generación de lenguajes de
programación avanza en la sintaxis utilizada. Lenguajes 4GL se utilizan
típicamente para acceder a bases de datos.
Quinta
generación:
se
llama así a veces a los lenguajes de la inteligencia artificial, aunque con el
fracaso del proyecto japonés de la quinta generación el nombre ha caído en
desuso.
5GL:
Imitación de la mente humana
La
quinta generación de lenguajes de programación es utilizada para redes
neuronales. Una red neuronal es una forma de inteligencia artificial que trata
de imitar la mente humana.
Hechos/conceptos
(contenidos soporte)
- Herramientas y anotaciones para el diseño de algoritmos. Diagramas de flujo. Pseudocódigo. Tablas de decisión.
- Estructura general de un programa. Partes de un programa (entrada, proceso, salida).
- Clasificación de las instrucciones. De declaración. Primitivas. De control. Compuestas.
- Variables auxiliares. Contadores. Acumuladores. Switches
- Técnicas de programación. Programación convencional. Programación estructurada (teorema y herramientas). Programación modular (subprogramas, procedimientos, funciones, recursos).
Existen varias clases de programación, dependiendo de los métodos utilizados y las técnicas empleadas.
Por Sara Alvarez
Los tipos o técnicas de programación son bastante variados, aunque puede
que muchos de los lectores sólo conozcan una metodología para realizar
programas. En la mayoría de los casos, las técnicas se centran en
programación modular y programación estructurada, pero existen otros
tipos de programación. Los explicaremos a lo largo del artículo.
Programación estructurada (PE)
La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
Las principales ventajas de la programación estructurada son:
Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.
Programación modular
En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.
En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.
A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.
El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos.
Programación concurrente
Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.
Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.
Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.
Programación funcional
Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.
Programación lógica
Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).
Programación estructurada (PE)
La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
- Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas.
- Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
- Estructuras básicas: existen tres tipos de estructuras básicas:
- Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
- Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
- Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.
Las principales ventajas de la programación estructurada son:
- Los programas son mas fáciles de entender
- Se reduce la complejidad de las pruebas
- Aumenta la productividad del programador
- Los programas queden mejor documentados internamente.
Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.
Programación modular
En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.
En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.
A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.
El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos.
Programación concurrente
Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.
Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.
Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.
Programación funcional
Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.
Programación lógica
Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).
Tipos de Programación
LENGUAJE C
LENGUAJE C
INTRODUCCION
|
El
lenguaje C fue inventado e implementado por primera vez por Dennis Ritchie en
un
DEC
PDP-11 en Bell Laboratories.
|
Es
el resultado de un proceso de desarrollo comenzado con un lenguaje anterior
denominado
B, inventado por Ken Thompson. En los años 70 el lenguaje B llevó al
desarrollo
del C. En 1978, Brian Kernighan y Dennis Ritchie publicaron el libro The C
Programming
Language que ha servido hasta la actualidad como definición eficiente de
este
lenguaje.
|
Durante
muchos años el estándar de C fue la versión proporcionada con la versión cinco
del
sistema operativo UNIX. En 1983, el instituto de estándares americanos estableció
un
estándar que definiera el lenguaje C, conocido como ANSI C. Hoy día, todos los
principales
compiladores de C llevan implementado el estándar ANSI.
|
El
lenguaje C se denomina como un lenguaje de nivel medio, puesto que combina
elementos
de lenguajes de alto nivel (Fortran, Pascal, Basic…) con el funcionalismo del
lenguaje
ensamblador.
|
C permite
la manipulación de bits, bytes y direcciones (los elementos básicos con que
funciona
la computadora).
|
Otras
características del C es que posee muy pocas palabras clave (32, donde 27 fueron
definidas
en la versión original y cinco añadidas por el comité del ANSI, enum, const,
signed, void y volatile). Todas
las palabras clave de C están en minúsculas (C distingue
entre
las mayúsculas y minúsculas). En la siguiente tabla se muestran las 32 palabras
clave:
|
auto
double
int
struct
|
break
else
long
switch
|
case
enum
register
typedef
|
char
extern
return
union
|
const
float
short
unsigned
|
continue
for
signed
void
|
default
goto
sizeof
volatile
|
do
if
static
while
|
Los
programas en C consisten en una o más funciones. La única función que debe estar
absolutamente
presente es la denominada main, siendo la primera función que es
llamada
cuando comienza la ejecución del programa. Aunque main no forma
técnicamente
parte del lenguaje C, hay que tratarla como si lo fuera, pues si se emplea
para
nombrar una variable, probablemente confundirá al compilador.
|
La
forma general de un programa en C es:
|
instrucciones del preprocesador
declaraciones globales
tipo_devuelto main(lista de parámetros)
{
secuencia de sentencias
}
|
tipo_devuelto función_1(lista de parámetros)
{
secuencia de sentencias
}
tipo_devuelto función_2(lista de parámetros)
{
secuencia de sentencias
}
|
…..
|
…..
tipo_devuelto función_n(lista de parámetros)
{
secuencia de sentencias
}
|
El
programa así escrito se denomina programa fuente y puede estar escrito en uno
o
varios
ficheros.
|
Para
que el programa pueda ser ejecutado se debe compilar y enlazar (linkar) con todas
aquellas
funciones de la biblioteca que se necesiten.
|
El
proceso de compilar consiste en traducir el programa fuente a código o lenguaje
máquina.
|
El
proceso de linkaje (enlazado) consiste en añadir rutinas (propias o bibliotecas
existentes
en el mercado) que también están en código máquina, es decir, están en
objeto.
|
Una
vez enlazado el programa objeto, tenemos un programa ejecutable que se puede
ejecutar
en el ordenador.
|
Estos
procesos son realizados por un programa llamado compilador.
|
El
compilador en las máquinas Alpha del C. P. D. es el DEC OSF/1 Versión 4.0. Para
compilar
y enlazar un programa con este compilador basta con hacer
|
cc
nombre_del_programa.c
|
para
crear, si no hay errores, un ejecutable (a.out). Existen múltiples opciones en
el
compilador
que se pueden comprobar con el comando de ayuda de los sistemas
operativos.
|
Los
ejemplos del curso siguen la sintaxis aceptada por el estándar ANSI, con lo que
son
portables
con cualquier otro compilador que lo lleve implementado.
|
Revisar esta unidad y apoyar sus estudios con mas documentacion en internet.
ResponderEliminarSólo hay un bien: el conocimiento. Sólo hay un mal: la ignorancia.
Enviar frase
Sócrates
Johan Ruano 1ro INF A
ResponderEliminar