Profesor: Rodrguez Morales Miguel ngel Fundamentos de programacin Grupo: ISE Alumno: Lpez Arriaga Oscar Algoritmos Instituto Tecnolgico de Oaxaca.
2 Caractersticas del lenguaje de programacin
Introduccin
En esta unidad se busca aprender las caractersticas del lenguaje de programacin as como su estructura, su traduccin de un programa, como se ejecuta un programa, los elementos del lenguaje, y los errores en tiempo de ejecucin. Y as llegar a tener un mayor conocimiento de la estructura y procesos a realizar en la elaboracin de un programa pata llegar a la solucin de un programa.
3 Caractersticas del lenguaje de programacin
Caractersticas del lenguaje de programacin
Un lenguaje de programacin es un idioma artificial diseado para expresar procesos que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana. Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin.
4 Caractersticas del lenguaje de programacin
Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos:
El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa).
Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin. Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms.
Un estndar de lenguaje de programas es un grupo de reglas que describen como deben escribirse las sentencias y comandos de programacin. La regla de que los nombres variables tienen que comenzar con una letra es un ejemplo de un estndar. Una variable es un elemento que puede tomar diferentes valores.
5 Caractersticas del lenguaje de programacin
Estructura bsica de un programa
Como ya se ha visto, cuando se escribe un programa lo que se trata de hacer es indicarle a la computadora cmo ha de resolver un problema. Estos programas siguen determinada estructuras, que dependen del tipo de lenguaje que usemos y del entorno en el cual lo creemos.
Principios generales:
Un cargador - todo programa necesita ser cargado en la memoria por el sistema operativo. De esto se encarga el intrprete. Definicin de los datos - la mayora de los programas operan con datos y por lo tanto en el cdigo fuente debemos definir qu tipo de datos vamos a utilizar en el programa. Esto se realiza de manera diferente en los distintos lenguajes. Todos los lenguajes que usaremos tienen la posibilidad de crear una nueva definicin de datos simplemente al utilizar los datos. Veremos esto en la prxima seccin.
Instrucciones - son la parte central del programa. Las instrucciones manipulan los datos que hemos definido, realizan clculos, muestran los resultados, etc.
La Mayora de programas siguen una de dos estructuras: 6 Caractersticas del lenguaje de programacin
-Programas de lotes:
Estos se ejecutan tpicamente desde una lnea de comando o automticamente desde otra aplicacin y tienden al siguiente patrn Inicializacin interna de los datos Lectura de los datos ingresados Procesamiento de los datos Visualizacin o ejecucin de los resultados -Programas controlados por eventos:
La mayor parte de las interfaces responden a eventos. Los programas controlados por eventos son generalmente as:
Inicializacin interna de los datos Espera de los eventos Identificacin de los eventos y actuacin en consecuencia
7 Caractersticas del lenguaje de programacin
Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo de compilacin.
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin.
Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.
Partes de un compilador
La construccin de un compilador involucra la divisin del proceso en una serie de fases que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el anlisis del programa fuente y la sntesis del programa objeto. 8 Caractersticas del lenguaje de programacin
Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye las fases correspondientes al Anlisis Lxico (que consiste en la descomposicin del programa fuente en componentes lxicos), Anlisis Sintctico (agrupacin de los componentes lxicos en frases gramaticales) y Anlisis Semntico (comprobacin de la validez semntica de las sentencias aceptadas en la fase de Anlisis Sintctico).
Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente posible).
Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden agrupar en Front-end y Back-end:
Front-end: es la parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y est compuesta por las fases comprendidas entre el Anlisis Lxico y la Generacin de Cdigo Intermedio.
9 Caractersticas del lenguaje de programacin
Back-end: es la parte que genera el cdigo mquina, especfico de una plataforma, a partir de los resultados de la fase de anlisis, realizada por el Front End.
Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de varios lenguajes de programacin distintos y que el mismo Front End que sirve para analizar el cdigo fuente de un lenguaje de programacin concreto sirva para generar cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin del cdigo dependiente de la mquina.
El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker).
Pre proceso
Lo primero que el compilador de C hace es pasar nuestro programa por el pre procesador. El preprocesador se encarga de interpretar cada una de las directivas que aparecen en el programa y de expandir las macros. Respecto a las directivas, son todos a aquellas lneas que comienzan con un smbolo #. Hay un conjunto de directivas que son parte del estndar ANSI se comentan en el apndice.
10 Caractersticas del lenguaje de programacin
Compilacin del programa.
Una vez que el programador acaba de escribir el programa en su terminal y lo almacena en un archivo debe traducirlo a cdigo ejecutable por la mquina. Este proceso se llama en su conjunto compilacin del cdigo fuente en C.
#include<stdio.h>
Hace que se inserte el fichero stdio.h en el lugar donde aparece esa lnea. Como el lector puede ver si examina el fichero stdio.h, lo que hay en el son declaraciones de prototipos de funciones y de tipos de datos, perfectamente validos en C.
El compilador se encarga de la etapa de pre proceso, justo antes de iniciar la compilacin. Por lo tanto, esta etapa pasa normalmente desapercibida, aunque puede indicrsele al compilador que solo efectu el pre proceso, para ver cmo queda el programa despus de l. La forma de solicitrselo depende de cada compilador en concreto. Una vez finalizado el pre proceso, nuestro programa que da listo para que pueda comenzarse su traduccin a cdigo ejecutable.
Enlace
11 Caractersticas del lenguaje de programacin
La siguiente etapa de compilacin es el enlace con las funciones presentes en las libreras de funciones. Si nuestro programa utiliza solo funciones ANSI, no suele ser necesario indicarle al compilador en que libreras estn esas funciones. Sin embargo hay excepciones. Por ejemplo si utilizamos funciones matemticas de la librera estndar en nuestro programa (es decir en el programa aparece #include <math.h>, opcin lm. Sin embargo, si utilizamos funciones definidas en una librera propia o bien en una librera no estndar, debemos indicrselo al compilador mediante algn parmetro.
Errores en tiempo de compilacin
El compilador es capaz de detectar algunos errores que pueden cometerse en el desarrollo de un programa escrito en C. Evidentemente, no puede detectar todos ya que un programa puede funcionar perfectamente pero no hacer lo que se espera de l. Los errores detectados por el compilador son de dos clases: errores propiamente dichos (errors), y advertencias (warnings)
Los errores se deben a cuestiones sintcticas relacionadas con el lenguaje. El compilador enumera los errores que se encontraron, y luego detiene la compilacin. El mensaje de error que aparece siempre indica al menos tres cosas:
12 Caractersticas del lenguaje de programacin
El nombre del fichero en donde se ha encontrado el error. La lnea del fichero en donde se ha detectado el error. Un mensaje describiendo brevemente el error.
Las advertencias no indican errores, sino que llaman la atencin al programador sobre los posibles usos incorrectos del lenguaje. Las advertencias, a diferencia de los errores no detienen el proceso de compilacin, pero casi siempre sealan un error oculto. En general, si aparece un warning hay que intentar eliminarlo. Si el compilador encuentra el error, intentara seguir compilando el programa para encontrar todos los errores posibles, detenindose cuando le resulte imposible seguir.
Ejecucin de un programa
A un programa en ejecucin se le suele llamar tambin proceso.
El proceso de ejecucin de un programa escrito en un lenguaje de programacin y mediante un compilador tiene los siguientes pasos:
13 Caractersticas del lenguaje de programacin
1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento. 2. Introducir el programa fuente en memoria. 3. Compilar el programa con el compilador. 4. Verificar y corregir errores de compilacin. 5. Obtencin del programa objeto 6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.
Se denomina tiempo de ejecucin (runtime en ingls) al intervalo de tiempo en el que un programa de computadora se ejecuta en un sistema operativo. Este tiempo se inicia con la puesta en memoria principal del programa, por lo que el sistema operativo comienza a ejecutar sus instrucciones. El intervalo finaliza en el momento en que ste enva al sistema operativo la seal de terminacin, sea sta una terminacin normal, en que el programa tuvo la posibilidad de concluir sus instrucciones satisfactoriamente, o una terminacin anormal, en el que el programa produjo algn error y el sistema debi forzar su finalizacin.
14 Caractersticas del lenguaje de programacin
Este trmino suele emplearse, en oposicin a tiempo de compilacin, para indicar si una accin o hecho sucede en uno u otro tiempo.
Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parmetros, operadores, entrada y salida de datos.
Tipos de datos
Todos los lenguajes de programacin soportan algn conjunto de diferentes tipos de datos. Un tipo de dato es un conjunto de valores y un conjunto de operaciones definidas para esos valores. Un tipo de dato describe un conjunto de objetos con la misma representacin. Existe un nmero de operaciones asociadas con cada tipo, por ejemplo: es posible realizara aritmtica sobre tipos de datos enteros y reales, concatenar con los datos de tipo cadena o recuperar o modificar el valor de un elemento de un arreglo. Un tipo de dato proporciona una descripcin de sus instancias que indican al compilador cosas como cuanta memoria se debe asignar para una instancia, cmo representar los datos en memoria y qu operaciones son permisibles sobre esos datos.
Los tipos de datos que se construyen en el compilador, se conocen como tipos de datos fundamentales o predefinidos. Cada lenguaje de programacin incorpora una coleccin de tipos de datos fundamentales, que incluyen normalmente enteros, reales, carcter etc. Los lenguajes 15 Caractersticas del lenguaje de programacin
soportan tambin un nmero de constructores de tipos de datos estructurados o compuestos, que son tipos ms complejos
Simples o primitivos (Bsicos, Fundamentales o predefinidos): Son aquellos que reconoce directamente el lenguaje, sirven de base para otros tipos de datos (complejos),ocupan solo una localidad de memoria, para el almacenamiento de un valor simple, no de objetos complejos. Por lo tanto la variable que lo identifica hace referencia a un valor nico a la vez., este tipo de datos se clasifican de la siguiente manera:
Numricos:
Son aquellos que solamente aceptan caracteres numricos y el carcter punto en el caso de aquellos valores fraccionarios.
Enteros:
Son aquellos que consideran solamente valores enteros (sin fracciones decimales) pudiendo ser precedidos por el carcter (-), para asignarle el signo a los valores negativos.
16 Caractersticas del lenguaje de programacin
Carcter o char:
Ocupan 16 bits, con un rango de 0 a 65,536. Este rango tan amplio, le permite al lenguaje representar cualquier carcter alfabtico, numrico (sin signo) o especial de cualquier lenguaje o idioma de cualquier parte del mundo, garantizando con esto la portabilidad. El carcter debe estar delimitado por comillas simples (apostrofes).
No primitivos (Estructurados o compuestos):
Son aquellos que no estn considerados por el lenguaje y tendrn que ser definidos por el programador, empleando para ello los tipos de datos simples o bsicos. Identificadores, Variables y Constantes
Algunos de los principales componentes de un programa son los Identificadores, las variables y las constantes.
Identificadores: Se emplean para asignarle un nombre a una clase, objeto, atributo, etc. Y se puede emplear en l, cualquier secuencia de caracteres alfabticos en maysculas o minsculas, numricos, los caracteres de subrayado (guion bajo), el de dlar ($) y no se permiten los espacios en blanco como separadores de palabras. 17 Caractersticas del lenguaje de programacin
Constantes
Una constante es una partida de datos que permanecen sin cambios en el programa (durante el desarrollo y ejecucin).
Variables
Una variable es una partida de datos cuyo valor puede cambiar en el programa (durante el desarrollo y ejecucin).
Los diferentes tipos de variables dependen del lenguaje de programacin, por lo general estas suelen ser enteras, reales, carcter, lgicas y de cadena.
Tanto las variables como las constantes tienen un nombre o identificador generalmente conformado por caracteres alfanumricos (ciertos lenguajes de programacin admiten el carcter de subrayado _ como vlido en los identificadores), y el primero de stos debe ser una letra.
18 Caractersticas del lenguaje de programacin
Para poder usar una variable en C++, primero debemos declararla especificando cul de los tipos de datos presentados arriba queremos que sea. La sintaxis para declarar una nueva variable es escribir el especificador de tipo de dato que queremos (como int, short, float...) seguido por un identificador de variable. Por ejemplo:
int a; float mynumber;
Son declaraciones validas de variables. La primera declara una variable de tipo int con el identificador a. La segunda declara una variable de tipo float con el identificador mynumber. Una vez declaradas, las variables a y mynumber pueden ser usadas dentro del resto de su contexto en el programa. Si necesita declarar algunas variables del mismo tipo y quiere ahorrarse escritura, puede declarar todas estas en la misma lnea separando los identificadores con comas ( , ). Por ejemplo:
int a, b, c;
Declara tres variables (a, b y c) de tipo int , y tiene exactamente el mismo significado que si hubiramos escrito: int a; 19 Caractersticas del lenguaje de programacin
int b; int c;
Inicializacin de variables
Cuando declaramos una variable local, su valor es indeterminado por defecto. Pero usted podra querer que una variable almacene un valor en concreto al momento de su declaracin. Para hacer esto, usted tiene que anexar un signo igual seguido por el valor deseado en la declaracin de la variable: type identifier = initial_value ;
Por ejemplo, si queremos declarar una variable entera int llamada a que contenga el valor 0 al momento en el cual es declarada, podramos escribir int a = 0;
Adicionalmente a esta forma de inicializacin de variables (conocida como c-like), C++ ha aadido una nueva manera de inicializar una variable: encerrando el valor inicial entre parntesis (): type identifier (initial_value) ; 20 Caractersticas del lenguaje de programacin
Por ejemplo: int a (0); Ambas formas son vlidas y equivalentes en C++.
Constantes: Literales.
Una constante es cualquier expresin que tenga un valor arreglado. Estos pueden ser divididos en nmeros Enteros, nmeros Punto-Flotante, Cadenas y smbolos.
Nmeros Enteros 1776 707 -273
Estas son constantes numricas que identifican nmeros enteros decimales. Note que para expresar una constante numricas no necesitamos escribir comillas (") ni otro smbolo especial. 21 Caractersticas del lenguaje de programacin
No hay duda de que es una constante dondequiera que se escriba 1776 en un programa, nos estaremos refiriendo al valor 1776.
En adicin a los nmeros decimales (esos que ya todos nosotros conocemos) C++ permite el uso de constantes literales de nmeros octales (base 8) y nmeros hexadecimales (base 16). Si queremos expresar un nmero octal debemos precederlo con un smbolo 0 (caracter cero). Y para expresar un nmero hexadecimal tenemos que precederlo con los smbolos 0x (cero, x). Por ejemplo, las siguientes constantes literales son todas equivalentes entre si: 75 // decimal 0113 // octal 0x4b // hexadecimal
Todas representan el mismo nmero: 75 (setenta y cinco) expresado como un nmero base 10, octal y hexadecimal, respectivamente. Nmeros Punto Flotante
Estos expresan nmeros con decimales y/o exponentes. Estos pueden incluir un punto decimal, un smbolo e (que expresa "por 10 a la n-esima potencia", donde n es el siguiente valor entero) o ambos. 3.14159 // 3.14159 6.02e23 // 6.02 x 1023 1.6e-19 // 1.6 x 10-19 3.0 // 3.0
22 Caractersticas del lenguaje de programacin
Estos son cuatro nmeros vlidos con decimales expresados en C++. El primer nmero es PI, el segundo es el nmero de Avogadro, el tercero es la carga elctrica de un electrn (un nmero extremadamente pequeo) -todos ellos aproximados- y el ltimo es el nmero 3 expresado como un literal numrico en punto flotante.
Constantes declaradas (const)
Con el prefijo const usted puede declarar constantes con un tipo especfico exactamente igual a como hara con una variable: const int width = 100; const char tab = '\t'; const zip = 12440; En caso de que el tipo no sea especificado (como en el ltimo ejemplo) el compilador asume que es de tipo int.
Errores en tiempo de ejecucin.
Los errores en tiempo de ejecucin son los que se producen durante la ejecucin del programa. Son los ms difciles de encontrar, no son detectados por el compilador, ya que son 23 Caractersticas del lenguaje de programacin
errores de lgica, no de sintaxis. Aunque al compilar un programa no de errores, el programa puede funcionar incorrectamente y/o a dar errores durante su ejecucin. Por ejemplo:
Un programa puede producir resultados errneos, al equivocarnos (errores lgicos) al programar el algoritmo (sumar en vez de restar, etc.). Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una divisin y el divisor es cero, etc.
Los errores que se pueden producir en la fase de compilacin son:
Errores fatales: Son raros. Indican errores internos del compilador. Cuando ocurre la compilacin se detiene inmediatamente. Errores de sintaxis: Son los errores tpicos de sintaxis. No detienen la compilacin sino que al finalizar sta se mostrar la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable.
Advertencias o avisos (warnings): Indican que hay lneas de cdigo sospechosas que a pesar de no infringir ninguna regla sintctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilacin no se detiene. Si en un 24 Caractersticas del lenguaje de programacin
programa fuente slo se detectan warnings s que se podr obtener un programa objeto, que tras el linkado dar lugar a un programa ejecutable.
Encontrar la causa que los provoca es una labor en ocasiones complicada, razn por la cual los EID (Entornos Integrados de Desarrollo,) nos proporcionan una herramienta llamada Depurador que nos ayuda a encontrar los errores lgicos y dems errores producidos en tiempo de ejecucin.
Un depurador (debugger), es un programa diseado especficamente para la deteccin, verificacin y correccin de errores. Los depuradores nos permiten trazar el programa (ejecutarlo sentencia a sentencia) y visualizar el contenido de las variables y direcciones de memoria durante la ejecucin del programa.
Adems permiten alterar el flujo de ejecucin del mismo, cambiar los valores de Las variables e introducir puntos de parada. .
25 Caractersticas del lenguaje de programacin
Conclusin
Al concluir con la investigacin de estos 6 temas se adquiere un amplio conocimiento sobre cada uno de los diferentes conceptos que explicaba cada uno de los temas, como la estructura que l lo primero que se debe declarar entre otros puntos as como el tipo de variables que existen las primitivas y las no primitivas, desde mi punto de vista esto nos ayuda a tener un mayor entendimiento al momento de realizar un programa y que es lo que lo constituye en si 26 Caractersticas del lenguaje de programacin
para su creacin y ejecucin y todos los posibles errores que puede haber al momento de ejecutar nuestro programa.
Referencias Caractersticas del lenguaje de programacin: https://sites.google.com/site/tecnologicodetuxtlagutierrez/unidad-3-caracteristicas-del- lenguaje-de-programacion Estructura bsica de un programa https://www.youtube.com/watch?v=JkTO_5yr3xE 27 Caractersticas del lenguaje de programacin
Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo de compilacin. https://www.youtube.com/watch?v=i0dovsDUndo Ejecucin de un programa https://sites.google.com/site/tecnologicodetuxtlagutierrez/3-4-ejecucion-de-un-programa Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parmetros, operadores, entrada y salida de datos. https://sites.google.com/site/tecnologicodetuxtlagutierrez/3-5-elementos-del-lenguaje- datos-literales-y-constantes-identificadores-variables-parametros-operadores-entrada-y-salida- de-datos Errores de tiempo de ejecucin http://ingenieriasistemasdecomputo.blogspot.mx/2006/11/32-diseo-algoritmico-de-las- funciones.html http://www.lawebdelprogramador.com/foros/Algoritmia/551369- diseno_algoritmico_de_funciones.html