Indice:
1.-Delimitadores
2.-Juego de Caracteres
3.-Operadores
3.0.-Tipos
3.1.-Asignación
3.2.-Aritméticos
3.3.-Comparativos
3.4.-Lógicos
4.-Tipos de Datos
4.1.-Integer(Entero)
4.2.-Float(Real)
4.3.-Booleano(Logico)
4.4.-Char y String(Caracter y Cadena)
5.-Sistema formal y su importancia
6.-Gramática formal

Es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Por otra parte, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas. Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto. Entonces para entender mejor estos lenguajes aquí te mostraremos sus elementos.
Delimitadores
Se llama delimitador a las palabras reservadas, no es mas que una palabra que tiene un significado gramatical especial para ese lenguaje y no puede ser utilizada como un identificador de objetos en códigos del mismo, como pueden ser las variables, de otra forma, estas palabras son exclusivamente para lo que fueron destinadas según sus creadores y su se llega a usar como una forma de almacenar un valor variable es generara un error tenemos como ejemplos de palabras reservada switch, do-while, for, if, else, exit, etc.
![]() |
| Palabras reservadas en C |
Juego de caracteres
considerado por muchos programadores y usuarios como un dolor de cabeza debido a que en los lenguajes no existen ciertos caracteres, provocando así errores gramaticales algo molestos como se ve en la imagen, tenemos el siguiente ejemplo.
![]() |
| Elementos como la ñ o los acentos no son reconocidos. |
![]() |
| ASCII 7 bits |
Siendo mas técnico la codificación de caracteres es el método que convierte un
carácter de un lenguaje natural en un símbolo de otro sistema de
representación, como un número o en el caso de un ordenador una secuencia de
unos y ceros. El juego de caracteres es la equivalencia carácter a carácter de
la codificación de los caracteres de un lenguaje natural a un sistema de
representación. Durante muchos años, el juego de caracteres más extendido
era ASCII. En ASCII, a cada carácter se le asigna un número del 0 al 127 (7
bits). ASCII sólo permite 128 caracteres diferentes, suficientes para el
inglés, pero no incluye la eñe, las vocales acentuadas, el comienzo de
interrogación o exclamación que se usa en castellano ni símbolos (matemáticos,
letras griegas...) que son necesarios en muchos contextos.
En la actualidad se recomienda utilizar Unicode en las páginas
web. Unicode es un estándar diseñado para facilitar el tratamiento informático,
la transmisión y la visualización de textos escritos en múltiples lenguajes. En el sitio web oficial de Unicode podemos encontrar las
Character Code Charts en las que se detallan todos los caracteres incluidos en
la especificación de Unicode. Estas tablas no son cómodas de manejar cuando se busca un
carácter concreto porque está organizada por idiomas. En Unicode character
table han juntado todos los caracteres en una sola tabla.
El W3C en su documento Internationalization Techniques:
Authoring HTML & CSS recomienda el empleo de Unicode mediante UTF-8 , un formato de codificación
de los caracteres Unicode utilizando símbolos de longitud variable. Las
características principales de UTF-8 son:
- Es capaz de representar cualquier carácter Unicode.
- Usa símbolos de longitud variable (de 1 a 4 bytes).
- Incluye la especificación ASCII de 7 bits, por lo que cualquier cadena de texto ASCII se representa sin cambios en UTF-8.
![]() |
| Formas de agregar UTF-8 a HTML |
Operadores
Un operador es un elemento de programa que se aplica a uno o
varios operandos en una expresión o instrucción. La función de cada operador depende del tipo que se esté
utilizando, veamos cada uno de ellos.
TIPOS
Asignacion
Como su nombre lo dice su función es asignar un valor
especifico a una variable mediante una asignación simple (=) o por dos
operadores, llamados operadores compuestos.
Todos son binarios.
Es recomendable no dejar espacios entre los operadores.
Aritméticos
Son aquello símbolos que nos permiten
hacer operaciones o cálculos simples. Los operadores de decremento e
incremento, suman o restan por defecto un 1 al valor de la variable. Suelen ser
usados como mayor frecuencia en ciclos repetitivos.Según la posición de estos operadores
puede cambiar el valor:
- Si el operador esta ante de la variable se conoce como prefijo, por ende, se realiza primero el incremento o decremento y después el utilizar el valor de la variable.
- Si esta después se conoce como posfijo, primero se usa el valor de la variable y luego se incrementa o decremento.
Comparativos
Permiten evaluar una la igualdad y la magnitud, es decir si
dos variables son iguales, diferentes o menores, a su vez permite comprobar
o bien probar la veracidad de una condición, propuesta o pregunta, la
respuesta es de valor booleano (verdadero que es igual 1 por defecto, y falso
que le corresponde el 0).
Lógicos
Producen un resultado booleano, les corresponden lógicos los
cuales están relacionados con cierto o falso, podría decirse que ayudan a
“unir” propiedades. Función de la siguiente manera.
Se tienen dos variables cualesquiera:
- Si dos ambas son verdaderas se obtiene un resultado verdadero.
- Si alguna es verdadera, es verdadero.
Tipos de datos
El tipo de un dato es el conjunto de valores que puede tomar
durante el programa. Si se le intenta dar un valor fuera del conjunto se
producirá un error. La asignación de tipos a los datos tiene dos objetivos
principales:
- Por un lado, detectar errores en las operaciones
- Por el otro, determinar cómo ejecutar estas operaciones
De Pascal se dice que es un lenguaje fuertemente tipeado.
Esto quiere decir que todos los datos deben de tener un tipo declarado
explícitamente, y además que existen ciertas restricciones en las expresiones
en cuanto a los tipos de datos que en ellas intervienen.
Una ventaja de los lenguajes fuertemente tipeados es que se
gasta mucho menos esfuerzo en depurar (corregir) los programas gracias a la
gran cantidad de errores que detecta el compilador. Los mas comunes son:
Integer(entero)
El tipo de datos entero es un tipo simple, y dentro de
estos, es ordinal. Al declarar una variable de tipo entero, estás creando una
variable numérica que puede tomar valores positivos o negativos, y sin parte
decimal.
Este tipo de variables, puedes utilizarlas en asignaciones,
comparaciones, expresiones aritméticas, etc. Algunos de los papeles más comunes
que desarrollan son:
- Controlar un bucle
- Usarlas como contador, incrementando su valor cuando sucede algo
- Realizar operaciones enteras, es decir, sin parte decimal
- Y muchas más...
Aquí un ejemplo:
Float(real)
Ya visto el conjunto entero de números hay que decir que no es el único conjunto que existe, también se permite trabajar con números pertenecientes al conjunto real.
El tipo de datos real es el que se corresponde con los
números reales. Este es un tipo importante para los cálculos. Por ejemplo, en
los estadísticos, ya que se caracterizan por tratar fundamentalmente con
valores decimales.
Boolean(Lógico)
El tipo de datos lógico es el que te permite usar variables
que disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su
utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven
para mantener el estado de un objeto mediante dos valores:
- si/no
- cierto/falso
- funciona/no funciona
- on/off
- etc.
Con el tipo carácter puedes tener objetos que representen
una letra, un número, etc. Es decir, puedes usar variables o constantes que
representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar
un carácter.
Sin embargo, con las cadenas de caracteres (strings) puedes
contener en una sóla variable más de un carácter. Por ejemplo, puedes tener en
una variable tu nombre.
Ejemplo:
Sistema Formal y su importancia
Un sistema formal es un tipo de sistema lógico-deductivo
constituido por un lenguaje formal, una gramática formal que restringe cuales
son las expresiones correctamente formadas de dicho lenguaje y las reglas de
inferencia y un conjunto de axiomas que permite encontrar las proposiciones
derivables de dichos axiomas. Los sistemas formales también han encontrado
aplicación dentro de la informática, la teoría de la información, y la
estadística, para proporcionar una definición rigurosa del concepto de
demostración. La noción de sistema formal corresponde a una formalización
rigurosa y completa del concepto de sistema axiomático, los cuales pueden ser
expresados en lenguaje formal o en lenguaje natural formalizado.
El objetivo de un sistema formal es señalar como válidas
determinadas cadenas. Estas cadenas válidas se denominan teoremas. Para obtener
los teoremas se emplean las reglas de producción que convierten una cadena en
otra.
Gramática formal
La
disciplina de la gramática que estudia el lenguaje mediante modelos formales y
matemáticos. Se recurre a la formalización cuando se quiere evitar los riesgos
que surgen al emplear la lengua para hablar de la lengua misma. A la hora de construir una
gramática formal hay varias posibilidades, es decir, hay varias formas posibles
de la gramática, nos interesan más las formas de la gramática cuando el lenguaje o
la lengua tienen un número potencialmente infinito de oraciones. Este es el
caso de las lenguas naturales y también de muchos lenguajes formales, como la
mayoría de los lenguajes de programación
Los
componentes de una gramática productiva son
esencialmente el vocabulario y las producciones.
- V es el vocabulario, formado por la unión de T y N.
- T es el vocabulario terminal, es decir, las palabras (o símbolos) del lenguaje que se define. Pueden ser, por tanto, las palabras y otros elementos (como los signos de puntuación) de una lengua natural.
- N es el vocabulario no terminal, o sea, el formado por los símbolos que se usan para especificar la gramática.
- S es el símbolo inicial, (start 'comienzo'), y es miembro de N.
- P es un conjunto de producciones. Cada producción tiene la forma a -> b












