Sie sind auf Seite 1von 22

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Educación

Universidad Experimental de Guayana

Ingeniería en Informática

Puerto Ordaz- Estado Bolívar

Lenguaje de programación

Estudiante:

Ciudad Guayana, Noviembre 2017


Introducción.

Elaborar algoritmos de programación resulta complejo si no se conocen


algunos aspectos fundamentales. En este trabajo de investigación
abordaremos conceptos relacionados con el lenguaje de programación, de
tal modo que conociendo éstos conceptos podamos elaborar programas de
una forma sencilla.

2
Índice.

Lenguaje de programación

Definición……………………………………………………………………………4

Clasificación………………………………………………………………………..4

Características……………………………………………………………………..5

Tipos…………………………………………………………………………………7

Usos………………………………………………………………………………….7

Evolución……………………………………………………………………………8

Proceso para la solución de un problema con computador………….……….10

Sintaxis L.P.………………………………………………………………..………14

Semántica L.P.……………………………………………………………..……...15

Proceso de compilación de un programa en C …………………………….….15

Programación modular ………………………………………………………...…17

Programación recursiva…………………………………………………………..18

Que es un paradigma…………………………………………………………......19

Paradigma de la programación………………………………………….............19

Conclusión………………………………………………………………………….21

Referencias electrónicas……………………………………………………….…21

3
Lenguajes de programación.
Un lenguaje de programación lo definimos como un conjunto de reglas,
símbolos y palabras especiales que permiten construir un programa. Un
lenguaje de programación es un lenguaje especial, no natural, diseñado con
un vocabulario, morfología y sintaxis muy simples y rígidas, orientado a la
programación de instrucciones elementales cuya ejecución por un
determinado sistema físico da lugar a la realización de una tarea.
Cada lenguaje tiene sus instrucciones y enunciados verbales propios,
que se combinan para formar los programas de cómputo. Los lenguajes de
programación no son aplicaciones, sino herramientas que permiten construir
y adecuar aplicaciones.

Clasificación de los lenguajes de programación.

Los lenguajes de programación se pueden clasificar en lenguajes de bajo


y alto nivel dependiendo de lo cercanos o lejanos que estén de la
arquitectura de la máquina en la que van a funcionar.

Lenguajes de bajo nivel:


 Están basados directamente en la máquina de Von Neumann, por lo
que están a un nivel muy cercano a la máquina.
 Las instrucciones del lenguaje son las instrucciones del
microprocesador del ordenador, que normalmente son demasiado
simples.
 Es exclusivo de cada ordenador.
 Es difícil y costoso de programar.

En lenguajes de bajo nivel distinguimos entre lenguaje máquina y lenguaje


ensamblador.
Lenguaje máquina:

4
 Instrucciones reconocidas por los circuitos del procesador.
 Se codifican en binario.
 Los datos se referencian por su posición de memoria.

Lenguaje ensamblador:
 Codificación mnemotécnica del lenguaje máquina.
 Necesita un traductor.
 Se pueden utilizar etiquetas en vez de posiciones de memoria.

Lenguajes de alto nivel:

 Están basados en máquinas abstractas, que facilitan la comprensión


por personas.
 Instrucciones más flexibles y potentes.
 Necesita un traductor para convertir el programa a lenguaje máquina,
que es el que entiende el ordenador.
 No depende del procesador, por lo que el mismo programa sirve para
diferentes ordenadores.
 Al tener que traducirlo, es más lento e ineficiente que el lenguaje de
bajo nivel.

Características del lenguaje de programación.


Hay cantidad de lenguajes de programación, algunas diferencias entre
ellos se encuentran su propósito (general o específico para cierto tipo de
tareas), en la sintaxis, el sistema de tipos, por los paradigmas de
programación que soporta (POO, imperativo, funcional, …), otras diferencias
están en la librerías disponibles, frameworks o comunidad, sin embargo, la
mayoría comparten algunas características por las que se pueden catalogar
los lenguajes. Nombraremos algunas de estas características por las que
podemos catalogar y agrupar los lenguajes de programación:

5
Compilado:

En un lenguaje compilado el código fuente antes de ser ejecutado es


convertido a lenguaje máquina (C, C++) aunque también puede ser
convertido a representación intermedia que posteriormente es interpretada y
convertida a lenguaje máquina JIT (Java, C#). El compilador puede detectar
una gran cantidad de errores que en un lenguaje interpretado o de tipado
dinámico se descubrirían en tiempo de ejecución.

Interpretado:

En un lenguaje interpretado el código fuente es compilado a código


máquina en el momento de su ejecución (Python, Ruby, PHP, JavaScript).

Orientado a objetos:

Parte del éxito de los lenguajes orientado a objetos se debe a conceptos


como la herencia que es una forma de reutilizar el código de la clase de la
que se hereda, el polimorfismo con la que un mismo método puede estar
implementado de diferente forma en función de la clase que lo implementa
en la jerarquía de clases construida con la herencia, la sobrecarga usar un
mismo método con diferentes parámetros y también igual o más importante
la encapsulación con la que se ocultan los detalles internos del
funcionamiento de la clase siendo únicamente posible manejar la clase a
través de la interfaz (métodos) que ofrece.

Tipado estático:

En un lenguaje de tipado estático las comprobaciones de tipos se


realizan en tiempo de compilación (C, C++, Java). Los tipos pueden ser
declarados de forma explícita o de forma inferida según el análisis del código
fuente que realiza el compilador.

Tipado dinámico:

6
Por el contrario el tipado dinámico comprueba los tipos en el momento de
ejecución del programa (PHP, Python, Groovy, JavaScript). A esos lenguajes
se les conoce como lenguajes dinámicos.

Fuertemente y débilmente tipado:

En un lenguaje fuertemente tipado un dato con un tipo no puede ser


usado como si fuese de otro. Aunque algunos lenguajes como Java se dicen
que son fuertemente tipado tienen algunas laxitudes. Por ejemplo, en Java
un float puede usarse como si fuese un double y en otros lenguajes con
menor grado de tipificación como PHP un string puede ser usado como un
dato numérico.

Tipos de lenguaje de programación.


Por la forma en que se pasa a lenguaje máquina:
• Lenguajes compilados → C, Pascal, C++,...
• Lenguajes interpretados → BASIC

Por el objetivo principal de los programas escritos en el lenguaje:

• Lenguajes de propósito general → C, Delphi...


• Lenguajes para la enseñanza → Logo, Pascal, Modula, BASIC...
• Lenguajes para cálculo científico → Fortran, Matlab, Mathematica, Maple...
• Lenguajes para gestión → Cobol...
• Lenguajes para la gestión de bases de datos → System Query Languages
(SQL) Informix...
• Lenguajes de inteligencia artificial → Prolog, Lisp...
• Programación multiplataforma e internet → Java

Usos del lenguaje de programación.


Los lenguajes de programación son utilizados para desarrollar programas
informáticos. Pueden usarse para crear programas que controlen el

7
comportamiento físico y lógico de una máquina, para expresar algoritmos con
precisión, o como modo de comunicación humana.

Evolución de los lenguajes de programación.


Los diseños de lenguaje y los métodos de implementación han
evolucionado de manera continua desde que aparecieron los primeros
lenguajes de alto nivel en la década de 1950.
Los lenguajes principales FORTRAN; LISP y COBOL fueron diseñados
originalmente en los años cincuenta, PL/I, SNOBOLA Y APL se empezaron a
usar en los años 60, Pascal, Prolog, Ada, C y Smalltalk son diseños que
datan de los años 70, y C++, ML datan de los años ochenta. En las décadas
de 1960 y 1970, se solían desarrollar nuevos lenguajes como parte de
proyectos importantes de desarrollo de software.
Los lenguajes más antiguos han experimentado revisiones periódicas
para reflejar la influencia de otras áreas de la computación; los más nuevos
reflejan una composición de experiencias adquiridas en el diseño y de usos
de estos y cientos de otros lenguajes más antiguos.
Algunas de las principales influencias en la evolución de diseños de
lenguajes se listan a continuación:

1. Capacidades de las computadoras. Las computadoras han


evolucionado de las máquinas pequeñas lentas y costosas máquinas
de tubos de vacío de los años 50 a las supercomputadoras y
microcomputadoras de hoy.

2. Aplicaciones. El uso de la computadora se ha difundido rápidamente,


de la concentración original de aplicaciones militares críticas,
científicas, negocios industriales de los años 50 donde el costo podría
estar justificado en los juegos en computadora, en computadoras

8
personales y aplicaciones en casi todas las áreas de la actividad
humana de hoy.

3. Métodos de programación. Los diseños de lenguajes han


evolucionado para reflejar, nuestra cambiante comprensión de los
buenos métodos para escribir programas largos y complejos y para
reflejar los cambios en el entorno en el cuál se efectúa la
programación.

4. Métodos de implementación. El desarrollo de mejores métodos de


implementación ha influido en la selección de las características que
se habrán de incluir en los nuevos diseños.

5. Estudios teóricos. La investigación de las bases conceptuales del


diseño e implementación de lenguajes , a través del uso de métodos
de matemáticos formales, ha profundizado nuestro entendimiento de
las fortalezas y debilidades de las características de los lenguajes y ,
por tanto, ha influido en la inclusión de estas características en los
nuevos diseños de lenguaje.

6. Estandarización. La necesidad de lenguajes estándar que se puedan


implementar con facilidad en una variedad de computadoras y que
permita que los programas sean transportados de una computadora a
otra ejerce una fuerte influencia conservadora sobre la evolución de
los diseños de lenguajes.

La evolución de los lenguajes de programación ha estado guiada por la


evolución de:
 Las computadoras y sus sistemas operativos.

9
 Las aplicaciones.
 Los métodos de programación.
 Los fundamento teóricos.
 La importancia dada a la estandarización.

Los lenguajes de programación han evolucionado a través de


generaciones. En cada nueva generación, van necesitándose menos
instrucciones para indicarle a la computadora que tarea efectuar. Es decir, un
programa escrito en un lenguaje de primera generación (maquina y/o
ensamblador) puede requerir más de 100 instrucciones; ese mismo
programa requerirá menos de 25 instrucciones en un lenguaje de tercera
generación (Alto nivel).

Proceso para la solución de un problema con computador.


El proceso de resolución de un problema con una computadora conduce a
la escritura de un programa y a su ejecución en la misma. Aunque el proceso
de diseñar programas es esencialmente un proceso creativo, se pueden
considerar también como una serie de fases o pasos comunes que
generalmente deben seguir todos los programadores.
Las siguientes son las etapas que se deben cumplir para resolver con
éxito un problema de programación:
1. Definición del problema
2. Análisis del problema
3. Selección de la mejor alternativa
4. Crear Diagrama de Flujo
5. Codificación
6. Compilación
7. Pruebas
8. Documentación externa

10
Definición del Problema.
Está dada por el enunciado del problema, el cual debe ser claro y
completo. Es importante que conozcamos exactamente que se desea de la
computadora; mientras que esto no se comprenda no tiene caso pasar a la
siguiente etapa.

Análisis del Problema.


Entendido el problema (que se desea obtener de la computadora), para
resolverlo es preciso analizar:

• Los datos o resultados que se esperan.


• Los datos de entrada que se deben suministrar.
• El proceso al que se requiere someter dichos datos a fin de obtener los
resultados esperados.
• Fórmulas, ecuaciones y otros recursos necesarios.

Una recomendación muy práctica es el que nos pongamos en el lugar de


la computadora, y analizar que es necesario que me ordenen y en que
secuencia para poder producir los resultados esperados.

Selección de la Mejor Alternativa.


Analizado el problema posiblemente tengamos varias formas de
resolverlo; lo importante es determinar cuál es la mejor alternativa. Esto es,
la que produce los resultados esperados en el menor tiempo y al menor
costo.

Crear Diagrama de Flujo.


Una vez que sabemos cómo resolver el problema, pasamos a dibujar
gráficamente la lógica de la alternativa seleccionada. Eso es precisamente

11
un Diagrama de Flujo: la representación gráfica de una secuencia lógica de
pasos a cumplir por la computadora para producir un resultado esperado.
La experiencia nos ha demostrado que resulta muy útil trasladar esos
pasos lógicos planteados en el diagrama a frases que indiquen lo mismo; es
decir, hacer una codificación del programa pero utilizando instrucciones en
español, como si le estuviéramos hablando a la computadora. Esto es lo que
se denomina Pseudocódigo. Cuando logremos habilidad para desarrollar
programas, es posible que no sea necesario elaborar ni el diagrama de flujo
ni el pseudocódigo del programa.

Codificación.
Una vez que hayamos elaborado el diagrama, codificamos el programa en
el lenguaje de programación seleccionado. Esto es, colocamos cada paso
del diagrama en una instrucción o sentencia utilizando un lenguaje que la
computadora reconoce. Este programa es el que se conoce como Código
Fuente (Source Code).
Todos los lenguajes de programación proveen facilidades para incluir
líneas de comentarios en los programas. Estos comentarios aclaran lo que
se ordena a la computadora y facilitan la compresión del programa. Puesto
que estos comentarios no se toman cuenta como instrucciones y aparecen
en los listados del programa, resulta muy conveniente agregar abundantes
comentarios a todo programa que codifiquemos. Esto es lo que se denomina
Documentación Interna.

Compilación.
Utilizamos ahora un programa Compilador, el cual analiza todo el
programa fuente y detecta errores de sintaxis ocasionados por fallas en la
codificación. Las fallas de lógica que pueda tener nuestro programa fuente
no son detectadas por el compilador. Cuando no hay errores graves en la
compilación, el compilador traduce cada instrucción del código fuente a

12
instrucciones propias de la máquina (Lenguaje de Maquina), creando el
Programa Objeto. Cuando hay errores, éstos se deben corregir sobre el
mismo programa fuente. El paso de compilación se repite hasta eliminar
todos los errores y obtener el programa ejecutable.

Pruebas.
Cuando tenemos el programa ejecutable (en lenguaje de maquina)
ordenamos al computador que lo ejecute, para lo cual suministramos datos
de prueba. Los resultados obtenidos se analizan para identificar cualquiera
de las siguientes situaciones:

• La lógica del programa está bien, pero hay errores sencillos, los cuales se
corrigen modificando algunas instrucciones o incluyendo unas nuevas; el
proceso debemos repetirlo desde el paso 5.

• Hay errores muy graves ocasionados por fallas en la lógica, y lo más


aconsejable es que regresemos al paso 2 para analizar nuevamente el
problema y repetir todo el proceso.

• No hay errores y los resultados son los esperados. En este caso, el


programa lo podemos guardar permanentemente para usarlo cuando
necesitemos ejecutarlo nuevamente.

Documentación Externa.
Cuando el programa ya se tiene listo para ejecutar, es conveniente que
hagamos su documentación externa. Una buena documentación externa
incluiría, por ejemplo:

• Enunciado del problema.


• Narrativo con la descripción de la solución.

13
• Descripción de las variables utilizadas en el programa, cada una con su
respectiva función.
• Resultados de la ejecución del programa

Que es sintaxis en L.P.


La sintaxis es el conjunto de reglas que gobiernan la construcción o
formación de sentencias (instrucciones) válidas en un lenguaje. Estas reglas
dicen si una frase está bien escrita o no. La sintaxis de un lenguaje de
programación es el aspecto que ofrece el programa.
Proporcionar las reglas de sintaxis para un lenguaje de programación
significa decir cómo se escriben los enunciados, declaraciones y otras
construcciones de lenguaje. La sintaxis, cuya definición sería "la disposición
de palabras como elementos en una oración para mostrar su relación,"'
describe la serie de símbolos que constituyen programas válidos.
Solamente las sentencias correctamente sintácticas pueden ser
traducidas por un lenguaje de programación, y los programas que contienen
errores de sintaxis son rechazados por la computadora. Cada lenguaje de
programación posee sus propias reglas sintácticas.
El estilo sintáctico general de un lenguaje, esta dado por la selección de
diversos elementos sintácticos básicos. Los más destacados son los
siguientes:

1. Conjunto de caracteres.
2. Identificadores.
3. Símbolos de operadores.
4. Palabras clave y palabras reservadas.
5. Comentarios
6. Espacios en blanco.
7. Delimitadores y corchetes.
8. Formato de campos libres y fijos.

14
9. Expresiones.
10. Enunciados.

Por ejemplo, un programa debe tener el siguiente formato general en C:

main ()
{
Lista_de_sentencias
}

Que es semántica en L.P.


La semántica es el conjunto de reglas que proporcionan el significado de
una sentencia o instrucción del lenguaje. La semántica de un lenguaje de
programación es el significado que se da a las diversas construcciones
sintácticas.

Ejemplo:
if (a>b) max := a else max := b;
el significado corresponde a la construcción algorítmica
Si … entonces … sino …
Además la expresión después de If debe tener un resultado lógico (verdad o
falso.)

Proceso de compilación de un programa en C.


1.- Analizador Léxico:
Realiza un análisis del archivo. La cadena de entrada se lee e izquierda a
derecha y se va agrupando en componentes léxicos, que son secuencias de
caracteres con un significado colectivo. Por ejemplo, identificadores, palabras
reservadas, signos de final de instrucción. Cada componente es asociada a
la categoría que pertenece.
2.- Analizador Sintáctico:

15
Realiza un análisis jerárquico agrupado de los componentes léxicos en
frases gramaticales que el compilador utiliza.
3.- Analizador Semántico:
Busca errores semánticos, reúne información sobre los tipos; identifica
operadores en base al árbol sintáctico producido en el análisis anterior
Ejemplo de error: operación entre tipos de datos incompatibles, rangos
permitidos existencia de variables. En cualquiera de estos tres análisis
pueden producirse errores.
4.- Generador de código intermedio:
Algunos compiladores generan una representación explicita del programa
fuente. Este código es independiente de la maquina y a veces se usa en un
conjunto con interpretes, en lenguajes independientes de la plataforma como
JAVA. Esta representación debe ser fácil de producir, ayudar a la
optimización y fácil de traducir al programa objeto.
5.-Optimización:
Esta fase trata de mejorar el código intermedio, o las estructuras que
generaran el código definitivo de modo de que resulte un código de maquina
más rápido de ejecutar para guardarlos valores calculados por cada
instrucción.
6.- Generador de código:
Esta fase final de un compilador. Genera el código objeto, que por lo
general consiste en un código de maquina relocalizable o código
ensamblador. Las posiciones de memoria relativas se seleccionan para cada
variable. El uso de los registros de la CPU es relevante.
7.- Agrupación lógica de un compilador:
Es la fase de análisis, depende del lenguaje fuente y son independientes
de las maquinas. Controla la corrección del programa fuente, manejando
errores en cada etapa. Produce las estructuras necesarias para la
generación del código.
8.-Fase de generación:

16
Depende de la maquina y el lenguaje intermedio. Hace uso intensivo de la
tabla de símbolos.

Programación modular.

La programación modular está basada en la técnica de diseño


descendente o ascendente, que consiste en dividir el problema original en
diversos subproblemas que se pueden resolver por separado, para después
recomponer los resultados y obtener la solución al problema.

Un subproblema se denomina módulo y es una parte del problema que se


puede resolver de manera independiente. Que un módulo sea independiente
nos permite, por un lado, concentrarnos en su resolución olvidándonos del
resto del problema, y por otro lado, permite reutilizar la solución obtenida
para otra parte del programa u otro programa distinto.

Cada módulo se codifica dentro del programa como un subprograma, es


decir, una sección de código independiente que realiza una tarea específica
dentro del programa. El concepto de subprograma es una evolución del
antiguo concepto de subrutina, presente en lenguajes como ensamblador,
Basic o primeras versiones de Fortran.

Una subrutina es una sección de código separada del programa principal


que puede ser llamada en un momento dado (llamada a subrutina) y que una
vez acabada su ejecución vuelve al punto donde se realizó la llamada.

Un subprograma hace el papel de un programa. Puede tener una sección


de declaraciones (variables, constantes, etc…) y posee también unos datos
de entrada y de salida. Esto permite, como ya veremos, que el subprograma
sea totalmente independiente del programa principal.

17
Técnicas de implementación de la programación modular.

1. Descomposición del problema en bloques o módulos de sólida


cohesión interna (Diseño modular).

2. Programación de cada módulo mediante métodos estructurados


(Programación estructurada).

3. Integración de módulos mediante procedimientos descendentes (Top-


Down) o ascendentes (Bottom-Up).

Programación recursiva.
Es una técnica de programación que consiste en resolver un problema por
medio de una o más divisiones de sí mismo más simples. Consiste en una
función en la que su definición contiene una invocación a sí misma, de tal
forma que se resuelve una parte del problema hasta llegar a un punto de
parada.
Un algoritmo recursivo consta de dos partes:

 Caso Base: Es la resolución del problema de manera directa.


 Caso Recursivo: Caso en el que el problema se divide en versiones
más pequeñas de sí mismo.

Técnicas de implementación de la programación recursiva.

1. Reconocer el caso base y proporcionar una solución para él.

2. Diseñar una estrategia para dividir el problema en versiones más


pequeñas del mismo considerando avanzar hacia el caso base.

18
3. Combine las soluciones de los problemas más pequeños para obtener
la solución del problema original.
Que es un paradigma.
Es el conjunto de prácticas o teorías que definen una disciplina científica,
luego de haber sido, y siendo aún puestas, a numerosas pruebas y análisis a
través del tiempo, y por ello aún se mantienen vigentes.

Paradigmas de la programación.
Un paradigma de programación representa un enfoque particular o
filosofía para diseñar soluciones. Los paradigmas difieren unos de otros, en
los conceptos y la forma de abstraer los elementos involucrados en un
problema, así como en los pasos que integran su solución del problema, en
otras palabras, el cómputo.

Tipos de paradigmas de programación.


Se pueden definir cuatro tipos fundamentales:

 Imperativos: La unidad de trabajo es la sentencia (acción). Pascal, C.


La programación en el paradigma imperativo consiste en determinar
qué datos son requeridos para el cálculo, asociar a esos datos unas
direcciones de memoria, y efectuar paso a paso una secuencia de

19
transformaciones en los datos almacenados, de forma que el estado
final represente el resultado correcto.

 Orientados a Objetos: La unidad de trabajo es el objeto. Agrupa las


estructuras de datos con sus algoritmos. Smalltalk.

 Funcionales: La unidad es la función. Consiste en combinar


funciones para conseguir funciones más complejas hasta llegar a la
función que es el programa. Lisp. Basado en el Cálculo Lambda. El
paradigma funcional está basado en el modelo matemático de
composición funcional. En este modelo, el resultado de un cálculo es
la entrada del siguiente, y así sucesivamente hasta que una
composición produce el valor deseado.

 Lógicos: Se especifican los hechos y las propiedades que especifican


el problema. El sistema utiliza esa información para encontrar la
solución. Prolog. Basado en la Lógica de Predicados.

Ejemplo de paradigma funcional:

Ejemplo de paradigma imperativo:

20
Conclusiones.

Se logró comprender que el lenguaje de programación está basado en un


conjunto de reglas y simbolos que nos permiten elaborar un programa,
además se debe tener una sintaxis y semántica en forma correcta para que
el programa no nos arroje errores.
Elaborar un programa resulta sencillo si se siguen un conjunto de pasos
preestablecidos y algunas técnicas como las de la programación modular.

Referencias Electrónicas.

http://matesmoliere.github.io/docs/lenguajesdeprogramacion2.pdf

http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/4/informatica4.pdf

http://informatica.uv.es/iiguia/AED/oldwww/200405/AED.Tema.05.pdf

http://ri.uaemex.mx/bitstream/handle/20.500.11799/34125/secme16653.pdf?
sequence=1

https://foro.elhacker.net/programacion_general/fasesdecompilaciont302095.0
.html

21
https://picodotdev.github.io/blog-bitix/2015/10/caracteristicas-de-loslenguajes-
de-programacion/

22

Das könnte Ihnen auch gefallen