Sei sulla pagina 1di 6

Lenguaje de programación

Un lenguaje de programación es un lenguaje formal que proporciona una serie


de instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a
modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de que
produzca diversas clases de datos. A todo este conjunto de órdenes y datos escritos mediante un
lenguaje de programación se le conoce como programa.
Algunos de estos lenguajes están formados por un conjunto de símbolos (llamado alfabeto),
reglas gramaticales (léxico/morfológicas y sintácticas) y reglas semánticas, que en conjunto
definen las estructuras válidas en el lenguaje y su significado. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de
un programa informático se le llama programación, que es la que define la creación
de software mediante la aplicación de procedimientos lógicos a través de los siguientes pasos:
 El desarrollo lógico del programa para resolver un problema en particular.
 Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa).
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y
'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a
otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es
propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten
estructurar el contenido de los documentos).
El lenguaje de programación permite especificar de manera precisa sobre qué datos debe operar
un software específico, cómo deben ser almacenados o transmitidos dichos datos, y qué
acciones debe dicho software tomar bajo una variada gama de circunstancias. Todo esto, a
través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural.
Una característica relevante de los lenguajes de programación es precisamente que más de un
programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos
para realizar la construcción de un programa de forma colaborativa.

Clasificación de los lenguajes de programación


Los lenguajes de programación han sido históricamente clasificados atendiendo a distintos
criterios:
 Clasificación histórica
A medida que surgian nuevos lenguajes que permitían nuevos estilos de programación más
expresiva, se distinguieron dichos estilos en una serie de generaciones, cada una
representando lenguajes de programación surgidos en una época similar y con
características genéricas comunes.

 Lenguajes de alto y de bajo nivel


Los lenguajes de programación se suelen clasificar dentro de dos amplias categorías que se
refieren a su "nivel de abstracción", es decir, en cuanto a lo específico o general que es
respecto a la arquitectura de computación inherente al sistema que se está utilizando.

 Clasificación por paradigmas


Los paradigmas de programación distinguen distintos modelos de cómputo y de estilos de
estructurar y organizar las tareas que debe realizar un programa. Un lenguaje de
programación puede ofrecer soporte a uno o varios paradigmas de programación, total o
parcialmente.
 Clasificación por propósito
Se distinguen los lenguajes de programación de propósito general de aquellos de propósito
específico.
En algunas ocasiones los lenguajes de programación son también clasificados en familias que
comparten ciertas características comunes como el estilo general de la sintaxis que emplean.
Habitualmente estas características suelen ser heredadas de lenguajes de programación
anteriores que sirvieron de inspiración a los creadores de dicho lenguaje.

Clasificación histórica o por generaciones


Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres
primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la
cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza
en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son
evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no
coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son
las siguientes:
 Primera Generación: Los primeros ordenadores se programaban directamente
en código de máquina (basado en sistema binario), que puede representarse mediante
secuencias de 0 y 1. No obstante, cada modelo de ordenador tiene su propia estructura
interna a la hora de programarse. A estos lenguajes se les denominaba Lenguaje de bajo
nivel, porque sus instrucciones ejercen un control directo sobre el hardware y están
condicionados por la estructura física de las computadoras que lo soportan. Dado que
este tipo de lenguaje se acerca mucho más a la lógica de la máquina que a la humana, es
mucho más complicado programar con él. El uso de la palabra bajo en su denominación
no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que se
refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza
este tipo de lenguajes para programar tareas críticas de los sistemas operativos, de
aplicaciones en tiempo real o controladores de dispositivos. Otra limitación de estos
lenguajes es que se requiere de ciertos conocimientos de programación para realizar las
secuencias de instrucciones lógicas.
 Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina,
simplifican la escritura de las instrucciones y las hacen más legibles. Se refiere al
lenguaje ensamblador ensamblado a través de un macroensamblador. Es el lenguaje de
máquina combinado con una serie de poderosas macros que permiten declarar
estructuras de datos y de control complejas.
 Tercera Generación: Los lenguajes de alto nivel sustituyen las instrucciones
simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o
al de las Matemáticas. Se crearon para que el usuario común pudiese solucionar un
problema de procesamiento de datos de una manera más fácil y rápida. Son usados en
ámbitos computacionales donde se logra un alto rendimiento con respecto a lenguajes
de generaciones anteriores. Entre ellos se
encuentran C, Fortran, Smalltalk, Ada, C++, C#, Cobol, Delphi, Java y PHP, entre
otros. Algunos de estos lenguajes pueden ser de propósito general, es decir, que el
lenguaje no está enfocado a una única especialidad, sino que puede usarse para crear
todo tipo de programas. Para ciertas tareas más comunes, existen bibliotecas para
facilitar la programación que permiten la reutilización de código.
 Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten
construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que
estas herramientas no son, propiamente hablando, lenguajes. Cabe mencionar que,
algunos proponen reservar el nombre de cuarta generación para la programación
orientada a objetos. Estos últimos tienen una estructura muy parecida al idioma inglés.
Algunas de sus características son: acceso a base de datos, capacidades gráficas,
generación de código automáticamente, así como poder programar visualmente (como
por ejemplo Visual Basic o SQL). Entre sus ventajas se cuenta una mayor productividad
y menor agotamiento del programador, así como menor concentración por su parte, ya
que las herramientas proporcionadas incluyen secuencias de instrucciones. El nivel de
concentración que se requiere es menor, ya que algunas instrucciones, que le son dadas
a las herramientas, a su vez, engloban secuencias de instrucciones a otro nivel dentro de
la herramienta. Cuando hay que dar mantenimiento a los programas previamente
elaborados, es menos complicado por requerir menor nivel de concentración. Por otro
lado, sus desventajas consisten en que estas herramientas prefabricadas son
generalmente menos flexibles que las instrucciones directas en los lenguajes de bajo
nivel. Además, se suelen crear dependencias con uno o varios proveedores externos, lo
que se traduce en pérdida de autonomía. Asimismo, es frecuente que dichas
herramientas prefabricadas contengan librerías de otros proveedores, que conlleva
instalar opciones adicionales que son consideradas opcionales. A menos que existan
acuerdos con otros proveedores, son programas que se ejecutan únicamente con el
lenguaje que lo creó. Tampoco suelen cumplir con los estándares
internacionales ISO y ANSI, lo cual conlleva un riesgo futuro por desconocerse su
tiempo de permanencia en el mercado. Algunos ejemplos son: NATURAL y PL/SQL.
 Quinta generación: en ocasiones se llama así a los lenguajes de inteligencia artificial,
aunque con el fracaso del proyecto japonés de la quinta generación esta denominación
ha caído en desuso.

Técnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie
de detalles.
 Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció
en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es
muy importante especificar claramente qué debe hacer el programa antes de
desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
 Claridad. Es muy importante que el programa sea lo más claro y legible posible, para
facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe
intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la
edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de
creación como en las fases posteriores de corrección de errores, ampliaciones,
modificaciones, etc.
 Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los
recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele
hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la
cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de
consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza
(espacio en disco que utiliza, tráfico de red que genera, etc.).
 Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en
una plataforma, ya sea hardware o software, diferente a aquella en la que se elaboró. La
portabilidad es una característica muy deseable para un programa, ya que permite, por
ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse
también en la familia de sistemas operativos Windows. Esto permite que el programa
pueda llegar a más usuarios más fácilmente.
Programming language

A programming language is a formal language that provides a series of instructions that allow a
programmer to write sequences of commands and algorithms in order to control the physical
and logical behavior of a computer in order to produce various kinds of data. All this set of
orders and data written by means of a programming language is known as a program.
Some of these languages are formed by a set of symbols (called alphabet), grammatical rules
(lexical / morphological and syntactic) and semantic rules, which together define the valid
structures in the language and their meaning. The process by which you write, test, debug,
compile (if necessary) and maintain the source code of a computer program is called
programming, which is what defines the creation of software through the application of
procedures logical through the following steps:
• The logical development of the program to solve a particular problem.
• Writing the program logic using a specific programming language (program coding).
• Assembly or compilation of the program until it becomes machine language.
• Testing and debugging the program.
• Documentation development.

There is a common error that treats the terms 'programming language' and 'computer
language' by synonyms. Computer languages encompass programming languages and others,
such as HTML (language for marking web pages that is not properly a programming language,
but a set of instructions that allow structuring the content of documents).
The programming language allows you to specify precisely what data a specific software
should operate, how that data should be stored or transmitted, and what actions that
software should take under a wide range of circumstances. All this, through a language that
tries to be relatively close to human or natural language. A relevant feature of programming
languages is precisely that more than one programmer can use a common set of instructions
that are included among them to perform the construction of a program collaboratively.

Classification of programming languages


Programming languages have historically been classified according to different criteria:
• Historical classification
As new languages emerged that allowed new styles of more expressive programming, these
styles were distinguished in a series of generations, each representing programming languages
that emerged in a similar era and with common generic characteristics.

• High and low level languages


Programming languages are usually classified into two broad categories that refer to their
"level of abstraction", that is, in terms of how specific or general it is regarding the computing
architecture inherent in the system being used.

• Classification by paradigms
The programming paradigms distinguish different models of computation and styles of
structuring and organizing the tasks that a program must perform. A programming language
can support one or more programming paradigms, totally or partially.
• Classification by purpose
The general purpose programming languages are distinguished from those of specific purpose.
On some occasions programming languages are also classified into families that share certain
common characteristics such as the general style of the syntax they use. These characteristics
are usually inherited from previous programming languages that inspired the creators of that
language.
Historical classification or by generations
Computer equipment (hardware) has gone through four generations, of which the first three
(computers with valves, transistors and integrated circuits) are very clear, the fourth (large-
scale integrated circuits) is more debatable.
Something similar has happened with the programming of computers (software), which is
carried out in languages that are usually classified in five generations, of which the first three
are evident, while not everyone agrees on the other two. These generations did not coincide
exactly in time with those of hardware, but approximately, and they are the following:

• First Generation: The first computers were programmed directly in machine code (based on
binary system), which can be represented by sequences of 0 and 1. However, each computer
model has its own internal structure at the time of programming. These languages were called
Low Level Language, because their instructions exercise direct control over the hardware and
are conditioned by the physical structure of the computers that support it. Since this type of
language is much closer to the logic of the machine than to the human, it is much more
complicated to program with it. The use of the word low in its name does not imply that the
language is less powerful than a high-level language, but refers to the reduced abstraction
between language and hardware. For example, this type of language is used to schedule
critical tasks of operating systems, real-time applications or device drivers. Another limitation
of these languages is that certain programming knowledge is required to perform logical
instruction sequences.
• Second generation: Symbolic languages, also typical of the machine, simplify the writing of
instructions and make them more readable. It refers to the assembly language assembled
through a macro-assembler. It is the machine language combined with a series of powerful
macros that allow you to declare complex data and control structures.
• Third Generation: High-level languages replace symbolic instructions with codes independent
of the machine, similar to human language or Mathematics. They were created so that the
common user could solve a data processing problem in an easier and faster way. They are used
in computing areas where high performance is achieved with respect to languages of previous
generations. Among them are C, Fortran, Smalltalk, Ada, C ++, C #, Cobol, Delphi, Java and PHP,
among others. Some of these languages may be general purpose, that is, the language is not
focused on a single specialty, but can be used to create all kinds of programs. For certain more
common tasks, there are libraries to facilitate programming that allow code reuse.
• Fourth generation: this name has been given to certain tools that allow simple applications
to be built by combining prefabricated parts. Today it is thought that these tools are not,
properly speaking, languages. It is worth mentioning that, some propose to reserve the fourth
generation name for object-oriented programming. The latter have a structure very similar to
the English language. Some of its features are: database access, graphic capabilities, code
generation automatically, as well as being able to program visually (such as Visual Basic or
SQL). Its advantages include greater productivity and less depletion of the programmer, as well
as less concentration on the other hand, since the tools provided include sequences of
instructions. The level of concentration required is lower, since some instructions, which are
given to the tools, in turn, include sequences of instructions at another level within the tool.
When previously developed programs have to be maintained, it is less complicated because
they require a lower level of concentration. On the other hand, their disadvantages are that
these prefabricated tools are generally less flexible than direct instructions in low-level
languages. In addition, dependencies are usually created with one or several external
suppliers, which translates into loss of autonomy. Likewise, these prefabricated tools often
contain libraries from other suppliers, which entails installing additional options that are
considered optional. Unless there are agreements with other providers, they are programs
that run only with the language that created it. Nor do they usually comply with the
international ISO and ANSI standards, which entails a future risk because their time in the
market is unknown. Some examples are: NATURAL and PL / SQL.
• Fifth generation: sometimes artificial intelligence languages are called that, although with
the failure of the Japanese project of the fifth generation this denomination has fallen into
disuse.

Potrebbero piacerti anche