Ir al contenido principal

Lenguaje de Programación


Lenguaje de programación

Un lenguaje de programación es un lenguaje formal que especifica una serie de instrucciones para que una computadora produzca diversas clases de datos. Los lenguajes de programación pueden usarse para crear programas que pongan en práctica algoritmos específicos los cuales controlan el comportamiento físico y lógico de una computadora.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, 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).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe 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.
Historia
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, que la máquina lee fácilmente, pero que es excesivamente complicado para las personas. De hecho solo consiste en cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron crear un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; este se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.
La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica semejante a la de los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.
El primer programador de computadora que se haya conocido fue una mujer: Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella inició en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con estas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.
A finales de 1953John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar la computadora central IBM 704. El histórico equipo Fortran de Backus consistió en los programadores Richard GoldbergSheldon F. BestHarlan HerrickPeter SheridanRoy NuttRobert NelsonIrving ZillerLois Haibt y David Sayre.1
El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática de gestión.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará una sola sentencia.


Implementación del lenguaje de programación
La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: compilación e interpretación.
·         Compilación: es el proceso que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz interpretar. Los programas traductores que pueden realizar esta operación se llaman compiladores. Estos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.
·         Interpretación: es una asignación de significados a las fórmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas de símbolos sin ningún significado. Una interpretación otorga significado a esas fórmulas.
Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador solo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.
La mayoría de lenguajes de alto nivel permiten la programación multipropósito, aunque muchos de ellos fueron diseñados para permitir programación dedicada, como lo fue el Pascal con las matemáticas en su comienzo. También se han implementado lenguajes educativos infantiles como Logo mediante una serie de simples instrucciones. En la actualidad son muy populares algunos lenguajes especialmente indicados para aplicaciones web, como PerlPHPRubyPython o JavaScript.




Técnicas en el lenguaje de programación


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. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.
·         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.




Tipos de lenguaje de programación
Un ordenador no entiende un lenguaje como el que utilizan los humanos, sino que el lenguaje que entiende se llama “lenguaje binario” o “código binario” o “código máquina” que consiste en ceros y unos básicamente, es decir, una máquina sólo utiliza los números 0 y 1 para codificar cualquier acción a tomar.
   Se clasifican en dos tipos: 

 Los Lenguajes de Programación de Bajo Nivel: son aquellos utilizados fundamentalmente para controlar el “hardware” del ordenador y dependen totalmente de la máquina y no se pueden utilizar en otras máquinas. Están orientados exclusivamente para la máquina Estos lenguajes son los que ordenan a la máquina operaciones fundamentales para que pueda funcionar. Utiliza básicamente ceros, unos y abreviaturas de letras. Estos lenguajes también se llaman de código máquina. Son los más complicados, pero solo los usan prácticamente los creadores de las máquinas. Con este tipo de lenguajes programan la asignación y liberación de memoria, el uso de punteros, el poder usar paso por valor y por referencia, la creación de tipos de datos, etc.





 Los Lenguajes de Programación de Alto Nivel: Estos lenguajes son más parecidos al lenguaje natural humano y no dependen de la máquina y sirven fundamentalmente para crear programas informáticos que solucionan diferentes problemas. Son los más usados por los programadores y por todo del mundo que realiza programas informáticos.

 La diferencia fundamental se puede explicar con el siguiente ejemplo:

 En un lenguaje de alto nivel sólo tengo que poner sqt(x), que sería una función predeterminada, calcular el cuadrado de x.

 Si fuera de bajo nivel, yo mismo tendría que crear la función sabiendo cómo funciona el cuadrado de un número:

   cuadrado(x) = x * x

 Como vemos para aprender a programar con un lenguaje de alto nivel debemos conocer el propio lenguaje que utiliza y todos sus comandos, en el ejemplo saber que sqt realiza el cuadrado de un número.







 Top 10 de lenguaje de programación 2018



1.Java Su simplicidad y gran legibilidad le han ganado a pulso el liderazgo de esta clasificación, manteniéndose imbatible desde 2015. Su peor posición ha sido un segundo puesto. No es de extrañar que más de 9 millones de desarrolladores de todo el mundo lo usen y esté presente en más de 7.000 millones de dispositivos. ¿Su principal baza? En el desarrollo de una aplicación el programa solo se escribe una vez y puede ejecutarse en cualquier dispositivo, por lo que no necesita ser recompilado ni traducido byte a byte.


2.C Destronado por Java en 2015, este lenguaje de programación se mantiene en un sólido segundo puesto con una mejora significativa en su valoración respecto al mismo mes del año pasado. Los Laboratorios Bell lo desarrollaron entre 1969 y 1972 y actualmente es uno de los más usados del mundo, debido principalmente a su flexibilidad y la eficiencia en los códigos, lo que le permite estar presente en la mayoría de los sistemas operativos y desarrollar aplicaciones.



3.C++ surge como una ampliación del C y con una clara orientación a objetos. Se considera un lenguaje híbrido y aúna las facilidades de la programación genérica con los paradigmas de programación estructurada y la programación orientada a objetos. Por eso se le considera un lenguaje de programación multiparadigma que le hace estar presente en una gran cantidad de programas, tales como los paquetes de Adobe.



4.Python Este lenguaje ha escalado puestos y está ganando fuerza, por lo que tiene posibilidades de situarse en el número uno a largo plazo. Su potencial está en su lenguaje multiplataforma y multiparadigma muy fácil de utilizar por principiantes. Python nació con el objetivo de facilitar siempre un código legible, por lo que soporta la orientación a objetos, la programación imperativa y la funcional.



5.Visual Basic.NET Otro lenguaje que mejora su rating respecto al año pasado para colocarse en el quinto lugar de la lista con un incremento del 2,19% en su valoración. Su sencilla sintaxis y la automatización de procesos hacen de este lenguaje de programación una buena opción para usuarios que no tengan conocimientos profundos como desarrolladores.




6.C# Con una ligera caída en su valoración, C# baja del cuarto al sexto puesto. Microsoft desarrolló en 2000 este lenguaje de programación orientado a objetos para ser empleado en una amplia gama de aplicaciones empresariales ejecutadas en el framework .NET. También conocido como C Sharp, supone un paso más allá del C y C++ y se caracteriza por su sencillez.



7.PHP En el séptimo puesto se mantiene este lenguaje de programación creado en 1994 por el canadiense Rasmus Lerdorf con el propósito de contar con un conjunto de herramientas para el mantenimiento de las páginas web. Su fácil acceso para nuevos programadores le convierte en una gran opción, también para los profesionales más experimentados por las muchas posibilidades que ofrece.


 8.Javascript Este lenguaje, que no hay que confundir con Java, también mantiene su posición en un octavo lugar. Consiste en un lenguaje de programación utilizado en la creación de programas que se incrustan en una página web o en programas más grandes, además de crear efectos y realizar acciones interactivas. Ejemplos de aplicaciones son los chats, las calculadoras o los buscadores de información.




9.SQL se ha agregado recientemente al top y se coloca directamente en el noveno puesto. El Structured Query Language es un lenguaje estándar de acceso a bases de datos relacionales que permite realizar búsquedas en base al uso del álgebra y cálculos relacionales. De esta forma se recupera información de esas bases de datos de manera sencilla mediante comandos que seleccionan, actualizan y ubican los datos.





10.Assembly Language A pesar de perder puntuación en su rating, este lenguaje de programación ha escalado desde el puesto 14 en 2017 hasta el décimo lugar en este 2018. Consiste en un lenguaje de bajo nivel que interactúa con el hardware mediante comandos estructurados para una mayor legibilidad de los códigos. Aunque es más sencillo de leer que el código binario, es un lenguaje complicado por lo que muchas veces es sustituido por un lenguaje superior.



Esquema para el desarrollo de un sistema en programación


Planificación
La importante tarea a la hora de crear un producto de software es obtener los requisitos o el análisis de los requisitos. Los clientes suelen tener una idea más bien abstracta del resultado final, pero no sobre las funciones que debería cumplir el software.
Una vez que se hayan recopilado los requisitos del cliente, se debe realizar un análisis del ámbito del desarrollo. Este documento se conoce como especificación funcional.
Implementación, pruebas y documentación
La implementación es parte del proceso en el que los ingenieros de software programan el código para el proyecto de trabajo que está en relación de las demanda del software, en esta etapa se realizan las pruebas de caja blanca y caja negra.
Las pruebas de software son parte esencial del proceso de desarrollo del software. Esta parte del proceso tiene la función de detectar los errores de software lo antes posible.
La documentación del diseño interno del software con el objetivo de facilitar su mejora y su mantenimiento se realiza a lo largo del proyecto. Esto puede incluir la documentación de un API, tanto interior como exterior. Prácticamente es como una receta de cocina
Despliegue y mantenimiento
El despliegue comienza cuando el código ha sido suficientemente probado, ha sido aprobado para su liberación y ha sido distribuido en el entorno de producción.
Entrenamiento y soporte para el software es de suma importancia y algo que muchos desarrolladores de software descuidan. Los usuarios, por naturaleza, se oponen al cambio porque conlleva una cierta inseguridad, es por ello que es fundamental instruir de forma adecuada a los futuros usuarios del software.
El mantenimiento o mejora de un software con problemas recientemente desplegado, puede requerir más tiempo que el desarrollo inicial del software. Es posible que haya que incorporar código que no se ajusta al diseño original con el objetivo de solucionar un problema o ampliar la funcionalidad para un cliente. Si los costes de mantenimiento son muy elevados puede que sea oportuno rediseñar el sistema para poder contener los costes de mantenimiento



Comentarios

Entradas populares de este blog

Pascal Como Lenguaje De Programación

Pascal como lenguaje de programación pascal es un lenguaje creado por el profesor suizo  Niklaus Wirth  entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la  programación estructurada  y estructuración de datos. Sin embargo, con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo. Pascal se caracteriza por ser un lenguaje de programación estructurado  fuertemente tipado . Esto implica que: ·          El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica. ·          El tipo de d...
LEYES DEL ÁLGEBRA DE PROPOSICIONES: Definición: Son Equivalencias Lógicas que nos permiten reducir esquemas moleculares complejos y expresarlos en forma más sencilla. También son llamadas leyes lógicas, y representan formas proposicionales en la que si se sustituyen sus variables por los enunciados correspondiente el resultado será una proposición lógicamente verdadera. Con fundamento en el contenido de la definición de ley lógica se evidencia la relación de está con las tautologías: toda tautología es una ley lógica. Existen abundantes equivalencias lógicas. Sin embargo, todas estas pueden deducirse a partir de unas pocas equivalencias fundamentales, llamadas comúnmente leyes del álgebra de proposiciones. JUSTIFICACIÓN Estudiar las leyes del algebra proposicionales, formular sistemas o modelos matemáticos para realizar representaciones verdaderas de determinadas proposiciones, a través de las siguientes leyes poder llegar a inferir conclusiones que nos permitan...

Diagramas de Flujos

Diag rama de flujo Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces se denominan con nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos", "diagrama ...