Un lenguaje de computación también se conoce como un lenguaje formal, porque existe una serie de reglas fijas para la construcción de las sentencias dentro de un programa. Inicialmente podemos hablar, que al igual que los lenguajes naturales (español, inglés, francés, etc.), en el lenguaje de computación existen elementos de léxico, sintáxis y semántica.
El programador escribe sentencias en un lenguaje de programación y un compilador o intérprete se encarga de traducir las sentencias en lenguaje máquina que puede procesar la computadora para realizar las tareas programadas.
Tanto el léxico como la sintaxis son situaciones que verifica el compilador. La semántica se refiere a la capacidad del programa para resolver el problema que requirió su creación, y aunque es responsabilidad del programador, existen herramientas para encontrar los errores. Para ello es necesario diseñar de forma inteligente los casos de prueba, analizando las salidas producidas por entradas de información que involucran diversas situaciones que puedan ayudar a detectar un fallo en la programación.
Java principalmente es un lenguaje orientado a objetos, todo lo que se programe en el lenguaje debe estar contenido en una clase modelada a partir de la información (atributos) y el comportamiento que pueden tener los objetos de una clase (métodos). Java está basado en el lenguaje C y recibe la mayor parte de sus características como operadores, palabras del lenguaje y estructuras de control. Java, además de implementar el paradigma de programación orientado a objetos, también es un lenguaje secuencial (las instrucciones se ejecutan por medio de algoritmos o pasos ordenados) e implementa estructuras de control para la toma de decisiones, repetición de fragmentos de código y organización del programa en subprogramas.
En este material, revisarás algunos conceptos necesarios para comprender el lenguaje de programación y la correcta construcción de sentencias. Utilizaremos una herramienta útil que surge con el lenguaje de programación Pascal para la construcción de elementos de léxico y sentencias adaptado a Java llamada diagramas sintácticos.