You are on page 1of 6

C (lenguaje de programacin)

C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior
lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la
eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se
utiliza para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio nivel pero con muchas caractersticas de bajo
nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que
permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en
ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos.
La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue
conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de
este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es porttil entre plataformas y/o arquitecturas.
Caractersticas
Propiedades
Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como funciones matemticas y de manejo de
archivos, proporcionadas por bibliotecas.
Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de los ms empleados es el estructurado "no
llevado al extremo" (permitiendo ciertas licencias de ruptura).
Un sistema de tipos que impide operaciones sin sentido.
Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir mltiples archivos de
cdigo fuente.
Acceso a memoria de bajo nivel mediante el uso de punteros.
Interrupciones al procesador con uniones.
Un conjunto reducido de palabras clave.
Por defecto, el paso de parmetros a una funcin se realiza por valor. El paso por referencia se consigue pasando
explcitamente a las funciones las direcciones de memoria de dichos parmetros.
Punteros a funciones y variables estticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y
un salario) se combinen y se manipulen como un todo (en una nica variable "empleado").
Carencias
Recoleccin de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la "libgc" desarrollada por Sun
Microsystems, o el Recolector de basura de Boehm.
Soporte para programacin orientada a objetos, aunque la implementacin original de C++ fue un preprocesador que
traduca cdigo fuente de C++ a C.
Funciones anidadas, aunque GCC tiene esta caracterstica como extensin.
Soporte nativo para programacin multihilo.
Aunque la lista de las caractersticas tiles de las que carece C es larga, este factor ha sido importante para su aceptacin, porque
escribir rpidamente nuevos compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control
directo del programador, y permite implementar la solucin ms natural para cada plataforma. sta es la causa de que a menudo C
sea ms eficiente que otros lenguajes. Tpicamente, slo la programacin cuidadosa en lenguaje ensamblador produce un cdigo
ms rpido, pues da control total sobre la mquina, aunque los avances en los compiladores de C y la complejidad creciente de los
microprocesadores modernos han reducido gradualmente esta diferencia.

En algunos casos, una caracterstica inexistente puede aproximarse. Por ejemplo, la implementacin original de C++ consist a en un
preprocesador que traduca cdigo fuente C++ a C. La mayora de las funciones orientadas a objetos incluyen un puntero especi al,
que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la funcin. Mediante el paso de este puntero
como un argumento de funcin, esta funcionalidad puede desempearse en C. Por ejemplo, en C++ se puede escribir:
stack.push(val);
Mientras que en C se podra escribir:
push(stack, val);
Donde el argumento stack es un puntero a una struct equivalente al puntero this de C++, que es un puntero a un objeto.

Declaracin de variables
En todo lenguaje de programacin existe el concepto de variables. Una variable es un buffer o espacio temporal de memoria que
puede ser conservado en la ejecucin del programa para guardar informacin que est cambiando constantemente o para modificar
el comportamiento de un programa en base a su valor. En BASH las variables no tienen tipo, esto significa, que no se debe preocupar
si la variable debe declararse como una variable tipo entero para guardar informacin de nmeros o tipo "string" para guardar texto
claro, esto en BASH puede hacerse indistintamente en ambos casos. Para declarar una variable basta escribir la expresin:
VARIABLE=valor
No se debe colocar espacio alguno entre el smbolo "=". Para hacer referencia luego al valor de la variable se usa la instruccin con la
expresin $VARIABLE.
Ejemplos:
VAR=25
hola=''hola''
hola2=$hola
letras=''a b c d f''
Luego para mostrar el valor de las variables se usa:
echo $VARIABLE
Cuando se usa la instruccin echo para determinar el valor de una variable se debe tomar en cuenta: La ejecucin de la instruccin
con las comillas dobles (") ejecuta la sustitucin de las variables dentro de la instruccin si la hubieran. Si se usan comillas simples (')
el resultado es que los caracteres especiales del Shell se interpretan literalmente y sin significado especial.
Ejemplo 1.
#!/bin/bash
hello="A B C D"
echo $hello # A B C D
echo "$hello" # A B C D
# As you see, echo $hello and echo "$hello" give different results.
# Quoting a variable preserves whitespace.

echo

echo '$hello' # $hello
La instruccin unset VARIABLE elimina el valor de la variable y la convierte en null. Ntese que el valor que se le da a la variable NO
es ``'' o ``cero'', directamente toma el valor de ``null'' y haciendo comparaciones en un script luego de haber ejecutado la
instruccin unset es un error muy comn. Ntese tambin que el nombre de la variable en la instruccin no est acompaada por
el carcter ``$''.
Una particularidad que tiene la asignacin en Shell scripts, que es posible asignar el resultado de un comando a una variable, esto
usando las comillas llamadas ``backquotes'' ''`''.
Sintaxis
La sintaxis es la parte de la gramtica que estudia las reglas y principios 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.
rboles sintcticos


rbol sintctico, para una oracin compuesta (el nio que me salud me odia) en la que la oracin subordinada es una oracin de
relativo.
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 un grafo que representa esta relacin de
orden parcial.
Cuando en una construccin un constituyente X es parte de un constituyente inmediato de otro constituyente 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 un 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).

Tipos de dato
Tipo de dato informtico es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase
de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qu valores pueden tomar y qu
operaciones se pueden realizar. Tipos de datos comunes son: enteros, nmeros de coma flotante (decimales), cadenas
alfanumricas, fechas, horas, colores, etc.
Por ejemplo, por lo general el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al
2.147.483.647, as como las operaciones que se pueden realizar con los enteros, como son la suma, la resta, y la multiplicacin. Los
colores, por su parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres
representando el nombre del color; las operaciones permitidas en este caso incluyen la adicin y la sustraccin, pero no la
multiplicacin.
ste es un concepto propio de la informtica, ms especficamente de los lenguajes de programacin, aunque tambin se encuentra
relacionado con nociones similares de la matemtica y la lgica.
Tipos de datos primitivos
Los tipos de datos hacen referencia al tipo de informacin que se trabaja, donde la unidad mnima de almacenamiento es el dato,
tambin se puede considerar como el rango de valores que puede tomar una variable durante la ejecucin del programa.
DATOS PRIMITIVOS:
NINGUNO

CARACTERES
El tipo de dato carcter es un dgito individual el cual se puede representar como numricos (0 al 9), letras (a-z) y smbolo ($,_).
NOTA: En lenguaje java la codificacin Unicode permite trabajar con todos los caracteres de distintos idiomas.

Tipo de dato Rango Tamao de bits
char 0 a 65535 16 bits

NUMRICOS Este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se vaya a utilizar.
Enteros: son los valores que no tienen punto decimal, pueden ser positivos o negativos y el cero.

tipo de dato: byte tamao= 8 bits
tipo de dato: short tamao= 16 bits
tipo de dato: int tamao= 32 bits
tipo de dato: long tamao= 64 bits
Reales: estos caracteres almacenan nmeros muy grandes que poseen parte entera y parte decimal.

tipo de dato: float= 32 bits
tipo de dato: double= 64 bits

BOOLEANOS
Este tipo de dato se emplea para valores lgicos, los podemos definir como datos comparativos dicha comparacin devuelve
resultados lgicos.
tipo de dato: boolean Rango= true - false

La Estructura del Lenguaje

Read in English

Podemos pensar sin usar el lenguaje? La investigacin sobre imgenes mentales indica que si podemos. Pero, sin lenguaje, cada
uno de nosotros viviramos en un mundo en gran medida solitario y aislado, incapaces de comunicarnos o recibir una mayor
cantidad de informacin. Los cientficos definen el lenguaje como un medio de comunicar pensamientos y sentimientos, mediante
un sistema de smbolos socialmente compartidos, pero arbitrarios (sonidos, signos, o smbolos escritos) dispuestos de acuerdo a las
reglas de la gramtica.

La estructura del lenguaje
La Psicolingstica es el estudio de cmo el lenguaje se adquiere, se produce, se utiliza y cmo los sonidos y los smbolos del lenguaje
se convierten en significado. La psicolingstica dedica muchos esfuerzos al estudio de la estructura del lenguaje y las normas que
rigen su uso. Estos componentes vitales del lenguaje son los fonemas, morfemas, la sintaxis, la pragmtica y la semntica.
Los fonemas
Las unidades ms pequeas de sonido en una lengua hablada se conocen como fonemas. Los fonemas forman los bloques de
construccin bsicos de un lenguaje hablado. Tres fonemas juntos forman el sonido de la palabra cat (gato) la c (la cual suena como
k), una a, y t. Los fonemas no suenan como las letras individuales del alfabeto a medida que los recitamos, a,b,c,d,e,f,g, sino como
los sonidos de las letras tal y como se utilizan en las palabras, como la b en book, la p en pan, y as sucesivamente. El sonido del
fonema c en la palabra cat (gato) es diferente del sonido del fonema c en la palabra city (ciudad).
Los morfemas
Los morfemas son las ms pequeas unidades de significado en un lenguaje. En casi todos los casos en el idioma Ingls, un morfema
es de dos o ms fonemas.
Por lo tanto, los morfemas, por separado y en combinacin, forman las palabras en un lenguaje y le dan significado. Pero las
palabras por s solas no constituyen un lenguaje. Un lenguaje tambin requiere de reglas para la estructuracin, o armar, las
palabras frases de manera ordenada y con sentido. Aqu es donde entra la sintaxis en el cuadro.

Sintaxis
La Sintaxis es el aspecto de la gramtica que especifica las reglas para la organizacin y la combinacin de las palabras en las frases y
la formulacin de oraciones. Por ejemplo, una regla importante de la sintaxis en ingls es que los adjetivos suelen preceder a los
sustantivos.
Semntica
La semntica se refiere al significado derivado de los morfemas, palabras y frases. La misma palabra puede tener diferentes
significados, dependiendo de cmo se usa en las oraciones: "I don't mind" (No me importa), "You mind your manners" (cuida tus
modales), "He lost his mind" (l ha perdido la razn).
En algunas frases, la estructura superficial y la estructura profunda son los mismos. Este es el caso de la frase "Lauren lee el libro."
Pero si esta frase se vuelve a escribir en la voz "pasiva" El libro fue ledo por Laura", los cambios son en la estructura de la superficie,
sin embargo, la estructura profunda es la misma. Por otra parte, una sola frase puede tener una o ms estructuras profundas
diferentes. Por ejemplo, en la frase "John enjoys charming people", dos estructuras profundas que compiten producen ambigedad.
Juan disfruta de las personas que son encantadoras, o disfruta el ejercicio de su encanto hacia otras personas?
Pragmtica
Cmo sabes si una persona est haciendo una afirmacin o una pregunta? Las caractersticas pragmticas de la lengua ayudarn a
notar la diferencia. La pragmtica se define como las caractersticas de la lengua hablada que te ayudan a descifrar el significado
social de los enunciados. Por ejemplo, uno de los aspectos de la pragmtica es la prosodia o entonacin. Cada idioma tiene sus
reglas prosdicas que se siguen cuando producimos declaraciones o preguntas.
Piensa por un minuto acerca de cmo el lenguaje es realmente increble. Nos permite formar y comprender un nmero virtualmente
infinito de oraciones con sentido. Si este no fuera el caso, nos limitara a la mera repeticin de las declaraciones que hubi ramos
odo o ledo. Por otra parte, el lenguaje no est limitado por el espacio o el tiempo. El lenguaje permite que nos comuniquemos
acerca de cosas que son abstractas o concretas, presentes o no presentes, y sobre lo que ha sido, es ahora, o posiblemente podra
ser. Gracias al lenguaje, podemos aprovechar la experiencia, el conocimiento y la sabidura de otros, y podemos beneficiar a otros
con la nuestra. El lenguaje hace disponible la sabidura de las pocas de todos los rincones del mundo.

You might also like