Está en la página 1de 13

Introduccin

El invento de las computadoras fue un proceso bastante largo que comenz desde ms o menos hace 5000 aos con el baco, fue pasando el tiempo y dentro de su construccin influyeon diversos genios en muchas epocas como es el caso de Blaise Pascal (1623 1662), Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania, Charles Babbage quien invento la primera computadaora, Charles Jacquard (francs), fabricante de tejidos, haba creado un telar que poda reproducir automticamente patrones de tejidos, entre muchos otros, hasta llegar a nuestros das, pero en ese mismo proceso se tuvo que crear un lenguaje de programacin en un indioma artificial diseado para expresar procesos que pueden ser llevados a cabo por mquinas como las computadoras.

La siguiente investigacin presenta de una forma especfica que es un lenguaje de programacin, como se clasifican los lenguajes de programacin, que son lenguajes de bajo, medio y alto nivel, las reglas semanticas y sintacticas del leguaje de programacin, y por ltimo varios ejemplos de el llamado lenguaje C. Esperamos que la informacin suministrada pueda ser utilizada en un futuro no muy lejano.

Definiciones de 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.[1] 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. 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, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.

Clasificacin de los lenguajes de programacin

Un lenguaje de programacin es un lenguaje inventado para controlar una mquina, (normalmente, un ordenador). Hay muchsimos, de toda clase de tipos y caractersticas, inventados para facilitar el abordaje de distintos problemas, el mantenimiento del software, su reutilizacin, mejorar la productividad, etc. Los lenguajes de programacin se pueden clasificar segn varios criterios. He encontrado doce en total: Nivel de abstraccin, propsito, evolucin histrica, manera de ejecutarse, manera de abordar la tarea a realizar, paradigma de programacin, lugar de ejecucin, concurrencia, interactividad, realizacin visual, determinismo y productividad. Hay que tener en cuenta tambin, que en la prctica, la mayora de lenguajes no pueden ser puramente clasificados en una categora, pues surgen incorporando ideas de otros lenguajes y de otras filosofas de programacin, pero no importa al establecer las clasificaciones, pues el autntico objetivo de las mismas es mostrar los rangos, las posibilidades y tipos de lenguajes que hay.

1. Nivel de abstraccin. Segn el nivel de abstraccin, o sea, segn el grado de cercana a la mquina: Lenguajes de bajo nivel: La programacin se realiza teniendo muy en cuenta las caractersticas del procesador. Ejemplo: Lenguajes ensamblador. Lenguajes de nivel medio: Permiten un mayor grado de abstraccin pero al mismo tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo: C puede realizar operaciones lgicas y de desplazamiento con bits, tratar todos los tipos de datos como lo que son en realidad a bajo nivel (nmeros), etc. Lenguajes de alto nivel: Ms parecidos al lenguaje humano. Manejan conceptos, tipos de datos, etc., de una manera cercana al pensamiento humano ignorando (abstrayndose) del funcionamiento de la mquina. Ejemplos: Java, Ruby. Hay quien slo considera lenguajes de bajo nivel y de alto nivel, (en ese caso, C es considerado de alto nivel). 2. Propsito. Segn el propsito, es decir, el tipo de problemas a tratar con ellos: Lenguajes de propsito general: Aptos para todo tipo de tareas: Ejemplo: C. Lenguajes de propsito especfico: Hechos para un objetivo muy concreto. Ejemplo: Csound (para crear ficheros de audio). Lenguajes de programacin de sistemas: Diseados para realizar sistemas operativos o drivers. Ejemplo: C. Lenguajes de script: Para realizar tareas varias de control y auxiliares. Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL (Job Control Languages). Se subdividen en varias clases (de shell, de GUI, de programacin web, etc.). Ejemplos: bash (shell), mIRC script, JavaScript (programacin web). 3. Evolucin histrica. Con el paso del tiempo, se va incrementando el nivel de abstraccin, pero en la prctica, los de una generacin no terminan de sustituir a los de la anterior: Lenguajes de primera generacin (1GL): Cdigo mquina. Lenguajes de segunda generacin (2GL): Lenguajes ensamblador. Lenguajes de tercera generacin (3GL): La mayora de los lenguajes modernos, diseados para facilitar la programacin a los humanos. Ejemplos: C, Java. Lenguajes de cuarta generacin (4GL): Diseados con un propsito concreto, o sea, para abordar un tipo concreto de problemas. Ejemplos: NATURAL, Mathematica. Lenguajes de quinta generacin (5GL): La intencin es que el programador establezca el qu problema ha de ser resuelto y las condiciones a reunir, y la mquina lo resuelve. Se usan en

inteligencia artificial. Ejemplo: Prolog. 4. Manera de ejecutarse. Segn la manera de ejecutarse: Lenguajes compilados: Un programa traductor traduce el cdigo del programa (cdigo fuente) en cdigo mquina (cdigo objeto). Otro programa, el enlazador, unir los ficheros de cdigo objeto del programa principal con los de las libreras para producir el programa ejecutable. Ejemplo: C. Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del programa de manera directa. Ejemplo: Lisp. Tambin los hay mixtos, como Java, que primero pasan por una fase de compilacin en la que el cdigo fuente se transforma en bytecode, y este bytecode puede ser ejecutado luego (interpretado) en ordenadores con distintas arquitecturas (procesadores) que tengan todos instalados la misma mquina virtual Java. 5. Manera de abordar la tarea a realizar. Segn la manera de abordar la tarea a realizar, pueden ser: Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C. Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Otros ejemplos de lenguajes declarativos, pero que no son lenguajes de programacin, son HTML (para describir pginas web) o SQL (para consultar bases de datos). 6. Paradigma de programacin. El paradigma de programacin es el estilo de programacin empleado. Algunos lenguajes soportan varios paradigmas, y otros slo uno. Se puede decir que histricamente han ido apareciendo para facilitar la tarea de programar segn el tipo de problema a abordar, o para facilitar el mantenimiento del software, o por otra cuestin similar, por lo que todos corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes ensambladores atados a la arquitectura de su procesador correspondiente. Los principales son: Lenguajes de programacin procedural: Divide el problema en partes ms pequeas, que sern realizadas por subprogramas (subrutinas, funciones, procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal. Lenguajes de programacin orientada a objetos: Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos. Ejemplos: C++, Java. Lenguajes de programacin funcional: La tarea se realiza evaluando funciones, (como en

Matemticas), de manera recursiva. Ejemplo: Lisp. Lenguajes de programacin lgica: La tarea a realizar se expresa empleando lgica formal matemtica. Expresa qu computar. Ejemplo: Prolog. Hay muchos paradigmas de programacin: Programacin genrica, programacin reflexiva, programacin orientada a procesos, etc. 7. Lugar de ejecucin. En sistemas distribuidos, segn dnde se ejecute: Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el ms utilizado en servidores web. Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores web. 8. Concurrencia. Segn admitan o no concurrencia de procesos, esto es, la ejecucin simultnea de varios procesos lanzados por el programa: Lenguajes concurrentes. Ejemplo: Ada. Lenguajes no concurrentes. Ejemplo: C. 9. Interactividad. Segn la interactividad del programa con el usuario u otros programas: Lenguajes orientados a sucesos: El flujo del programa es controlado por la interaccin con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces grficos de usuario (GUI) o kernels. Ejemplo: VisualBasic, lenguajes de programacin declarativos. Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo ms claro (actualizaciones de bases de datos, colas de impresin de documentos, etc.). Ejemplos: Lenguajes de programacin imperativos. 10. Realizacin visual. Segn la realizacin visual o no del programa: Lenguajes de programacin visual: El programa se realiza moviendo bloques de construccin de programas (objetos visuales) en un interfaz adecuado para ello. No confundir con entornos de programacin visual, como Microsoft Visual Studio y sus lenguajes de programacin textuales (como Visual C#). Ejemplo: Mindscript. Lenguajes de programacin textual: El cdigo del programa se realiza escribindolo. Ejemplos: C, Java, Lisp.

11. Determinismo. Segn se pueda predecir o no el siguiente estado del programa a partir del estado actual: Lenguajes deterministas. Ejemplos: Todos los anteriores. Lenguajes probabilsticos o no deterministas: Sirven para explorar grandes espacios de bsqueda, (como gramticas), y en la investigacin terica de hipercomputacin. Ejemplo: mutt (generador de texto aleatorio). 12. Productividad. Segn se caractericen por tener virtudes tiles o productivas, u oscuras y enrevesadas: Lenguajes tiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad, productividad, etc., motiva que sean utilizados en empresas, administraciones pblicas y/o en la enseanza. Ejemplos: Cualquier lenguaje de uso habitual (C, Java, C++, Lisp, Python, Ruby, ). Lenguajes esotricos o exticos: Inventados con la intencin de ser los ms raros, oscuros, difciles, simples y/o retorcidos de los lenguajes, para diversin y entretenimiento de frikis programadores. A veces exploran nuevas ideas en programacin. Ejemplo: Brainfuck.

Reglas semanticas y sintacticas. El trmino semntica (del griego semantikos, "lo que tiene significado") se refiere a los aspectos del significado, sentido o interpretacin de signos lingsticos como smbolos, palabras, expresiones o representaciones formales. En principio cualquier medio de expresin (lenguaje formal o natural) admite una correspondencia entre expresiones de smbolos o palabras y situaciones o conjuntos de cosas que se encuentran en el mundo fsico o abstracto que puede ser descrito por dicho medio de expresin. Semntica lgica, desarrolla una serie de problemas lgicos de significacin, estudia la relacin entre el signo lingstico y la realidad. Las condiciones necesarias para que un signo pueda aplicarse a un objeto, y las reglas que aseguran una significacin exacta. La lgica de predicados de primer orden es el tipo de sistema lgico-matemtico ms sencillo donde aparece el concepto de interpretacin semntica. Dicha lgica est formada por: 1. Un conjunto de signos (conectivas, parntesis, cuantificadores,...). 2. Un conjunto de variables y constantes. 3. Un conjunto de predicados sobre las variables.

4. Un conjunto de reglas de buena formacin de expresiones a partir de expresiones sencillas. En la lgica de primer orden el conjunto de variables y constantes juega un papel similar al lexicn de las lenguas naturales, ya que bajo una interpretacin semntica son los elementos que admiten referentes. A su vez, el conjunto de reglas de buena formacin de expresiones hace el papel de la sintaxis en las lenguas naturales. Para interpretar semnticamente las expresiones formales de un sistema lgico de primer orden necesitamos definir un modelo o conjunto estructurado sobre el que interpretar los enunciados formales del sistema lgico. Un modelo de acuerdo con la teora de modelos es un conjunto con cierta estructura junto con una regla de interpretacin que permite asignar a cada variable o constante un elemento del conjunto y cada predicado en el que intervienen un conjunto de variables puede ser juzgado como cierto o falso sobre el conjunto en el que se interpretan las proposiciones del sistema lgico formal. En lgica matemtica se suelen dividir los axiomas en dos tipos: Axiomas lgicos, que definen bsicamente las reglas de deduccin y estn formados por tautologas. Bsicamente son vlidos para cualquier tipo de sistema formal razonable. Axiomas matemticos, que aseveran la existencia de cierto tipo de conjuntos y objetos con verdadero contenido semntico. Gracias a ello es posible introducir conceptos nuevos y probar las relaciones entre ellos. As, si se tiene un conjunto de axiomas que define la teora de grupos, cualquier grupo matemtico es un modelo en el que las proposiciones y axiomas de dicha teora reciben interpretacin y resultan en proposiciones ciertas sobre ese modelo. Sintactica La sintaxis es la parte de la gramtica que estudia las reglas que gobiernan la combinatoria de constituyentes sintcticos y la formacin de unidades superiores a estos, como los sintagmas y oraciones gramaticales. La sintaxis, por tanto, estudia las formas en que se combinan las palabras, as como las relaciones sintagmticas y paradigmticas existentes entre ellas. Sintaxis estructural La sintaxis, para Leonard Bloomfield, era el estudio de formas libres compuestas completamente por formas libres. Central a esta teora de la sintaxis eran las nociones de clases de forma (form classes) y estructura constituyente. (Estas nociones eran tambin relevantes, aunque menos centrales, en la teora de la morfologa). Bloomfield defini clases de forma ms bien de manera imprecisa, en trminos de algn "rasgo fontico o gramtico reconocible" comn y compartido por todos los miembros. Dio como ejemplos las clases de forma que consisten en expresiones substantivas personales de la lengua inglesa (definidas como las formas que, cuando estn expresadas con tono exclamatorio final, constituyen requerimientos (llamadas) de la presencia o la

atencin de una persona: por ejemplo, "John," "Boy," "Mr. Smith."); las clases de forma que consisten en expresiones infinitivas (definidas como "formas que, cuando estn expresadas con tono exclamatorio final, tienen el significado de una orden": por ejemplo, "run," "jump," "come on"); las clases de la forma de expresiones sustantivas nominativas (por ejemplo: "John," "the boys") y as sucesivamente. Debe estar claro, a partir de estos ejemplos, que las clases de forma son similares, aunque no idnticas, a las partes del discurso tradicionales y que una misma forma puede pertenecer a ms de una clase de forma. Dada una oracin o construccin compleja esta puede dividirse en constituyentes sintcticos, cada uno de los cuales a su vez podra ser divisible o analizable en otros constituyentes. El conjunto de constituyentes sintcticos admite con la relacin binaria de inclusin (o "ser parte de") es un conjunto parcialmente ordenado. Un rbol sintctico es una representacin de las relaciones jerrquicas entre los constituyentes sintcticos. Ms formalmente, un rbol sintctico es una grafo que representa esta relacin de orden parcial. Cuando en una construccin un constituyente X es parte de un constituyente inemdiato de otro constitiyente ms grande Y, el rbol sintctico correspondiente tendr una lnea entre el nodo que representa a X y en nodo que representa a Y. Actualmente se acepta que toda lengua admite una anlisis mediante rboles sintcticos binarios. En los rboles grficos los ncleos sintcticos se suelen representar con una letra, por ejemplo X, seguida de un subndice (por ejemplo ), mientras que las estructuras ms complejas se sealan mediante una o dos barras superpuestas o mediante primas (por ejemplo, ) y si se trata de proyecciones mximas de un ncleo mediante la letras S antecediendo a la letra que designa al ncleo (por ejemplo SX).

Lenguaje bajo, medio, alto nivel.

Esta arriba...

Ejemplos de lenguaje C

TIPOS EN EL LENGUAJE C
El tipo int

En una variable de este tipo se almacenan nmeros enteros (sin decimales). En memoria ocupa 16 o 32 bits (segn sea un ordenador de 16 o 32 bits) La declaro con:
int numero;

Esto hace que declaremos una variable llamada numero que va a contener un nmero entero. La asignacion de valor es tan sencilla como:
x = 10;

Tambin se puede dar un valor inicial a la variable cuando se define:


int x = 15;

Tambin se pueden inicializar varias variables en una sola lnea:


int x = 15, y = 20;

El tipo long Es igual que int, pero con longitud de 32 bits El tipo char Las variables de tipo char sirven para almacenar caracteres. Los caracteres se almacenan en un byte como nmeros del 0 al 255. Los 128 primeros (0 a 127) son el ASCII estandar. El resto es el ASCII extendido y depende del idioma y del ordenador. Para declarar una variable de tipo char hacemos:
char letra;

En una variable char solo podemos almacenar solo un caracter. Para almacenar un dato en una variable char tenemos dos posibilidades:
letra = 'A'; o letra = 65;

En ambos casos se almacena la letra 'A' en la variable (el codigo ASCII de la letra 'A' es el

65) Las variables tipo char se pueden usar (y de hecho se usan mucho) para almacenar enteros. Si necesitamos un nmero pequeo (entre -127 y 127) podemos usar una variable char (8bits) en vez de un int. Una curiosidad:
letra = 'A'; printf( 'La letra es: %c y su valor ASCII es: %i\n', letra, letra ); letra = letra + 1; printf( 'Ahora es: %c y su valor ASCII es: %i\n', letra, letra );

En este ejemplo letra comienza con el valor 'A', que es el codigo ASCII 65. Al sumarle 1 pasa a tener el valor 66, que equivale a la letra 'B' (codigo ASCII 66). La salida de este ejemplo sera:
La letra es A y su valor ASCII es 65 Ahora es B y su valor ASCII es 66

El modificador Unsigned Este modificador (que significa sin signo) modifica el rango de valores que puede contener una variable. Solo admite valores positivos. Si hacemos:
unsigned char variable;

Esta variable en vez de tener un rango de -128 a 128 pasa a tener un rango de 0 a 255. El tipo float En este tipo de variable podemos almacenar nmeros decimales, no solo enteros como en los anteriores. El rango de posibles valores es del 3,4E-38 al 3,4E38. Declaracion de una variable de tipo float:
float numero;

Para imprimir valores tipo float Usamos %f.


float num=4060.80; printf( 'El valor de num es : %f', num ); Resultado: El valor de num es: 4060.80

Si queremos escribirlo en notacion exponencial usamos %e:


float num = 4060.80; printf( 'El valor de num es: %e', num ); Que da como resultado: El valor de num es: 4.06080e003

Conclusin

Los lenguajes de programacin se crearon para que el hombre pudiera manejar informacin en forma prctica a traves de estos en mquinas como las computadoras, con el pasar de los aos estos lenguajes se han modificado muchas veces con el fin de mejorarlos y que los diferentes usuarios de todo el mundo puedan manejar diversos programas relacionados con sus especialidades, por eso, existen tantos software y adems muchos de ellos se mejoran continuamente. La siguiente investigacin nos permitio conocer que es un lenguaje de programacin, como se clasifican los lenguajes de programacin, que son lenguajes de bajo, medio y alto nivel, las reglas semanticas y sintacticas del leguaje de programacin, y manejar varios ejemplos de el llamado lenguaje C, por lo que podemos decir que este trabajo sera un apoyo importante en el desrrollo de nuestra asignatura.

Bibliografa:

Lenguaje de programacin - Wikipedia, la enciclopedia libre Un lenguaje de programacin es un idioma artificial diseado para expresar ..... ingls); Lenguajes clasificados por paradigmas de programacin: definiciones, ... es.wikipedia.org es.wikipedia.org/wiki/Lenguaje_de_programacin

Clasificacin de lenguajes de programacin qbitcora 21 Sep 2007 ... Un lenguaje de programacin es un lenguaje inventado para controlar una mquina, (normalmente, un ordenador). Hay muchsimos, de toda ...

qbitacora.wordpress.com qbitacora.wordpress.com/.../clasificacion-de-lenguajes-de-programacion/

TIPOS EN EL LENGUAJE C. 6 Jun 2012 ... TIPOS EN EL LENGUAJE C. El tipo int. En una variable de este tipo se almacenan nmeros enteros (sin decimales). En memoria ocupa 16 o ... www.gratiszona.com www.gratiszona.com/apuntes/lenguaje-c/02-tipos.htm

También podría gustarte