domingo, 14 de junio de 2020

Lenguajes de Programación

Es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.

Está formado de 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 prueba, se depura, se compila 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 el 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 diseñar el contenido y el texto 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, tal como sucede con el lenguaje Léxico. 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 del programa de forma colaborativa.


Fuente

https://www.ecured.cu/Lenguaje_de_programaci%C3%B3n_(inform%C3%A1tica)


Historia de la programación

La historia de la Programación está relacionada directamente con la aparición de los computadores, que ya desde el siglo XV tuvo sus inicios con la construcción de una máquina que realizaba operaciones básicas y raíces cuadradas (Gottfried Wilheml von Leibniz); aunque en realidad la primera gran influencia hacia la creación de los computadores fue la  máquina diferencial para el cálculo de polinomios, proyecto no concluido de Charles Babbage (1793-1871)  con el apoyo de Lady Ada Countess of Lovelace (1815-1852), primera persona que incursionó en la programación y de quien proviene el nombre del lenguaje de programación ADA creado por el DoD (Departamento de defensa de Estados Unidos) en la década de 1970. 

La siguiente tabla, es un resumen de los principales hitos en la historia de la computación:

Personaje

Aporte

Año

Gottfried Wilheml von Leibniz

Máquinas de operaciones básicas

XV

Charles Babbage

Máquina diferencial para el cálculo de polinomios

XVII

Lady Ada Countess of Lovelace

Almacenamiento en tarjetas perforadas

XVII

Herman Hollerit

Creador de un sistema para automatizar la pesada tarea del censo

1890

Alan Mathison Turing

Máquina de Turing - una máquina capaz de resolver problemas - Aportes de Lógica Matemática - Computadora con tubos de vacío

1943

George Boole

Contribuyó al álgebra binaria y a los sistemas de circuitos de computadora (álgebra booleana).

1854

John Vincent Atanasoff

Primera computadora digital electrónica patentada - Atanasoff Berry Computer (ABC)

1942

Howard Aiken

En colaboración con IBM desarrolló el Mark 1, una computadora electromecánica de 16 metros de largo y más de dos de alto que podía realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas.

1944

John W. Mauchly

Junto a John Presper Eckert desarrolló una computadora electrónica completamente operacional a gran escala llamada Electronic Numerical Integrator And Computer (ENIAC).

1946

Johann Ludwig Von Neumann

Propuso guardar en memoria no solo la información, sino también los programas, acelerando los procesos.

1945

Luego los avances en las ciencias informáticas han sido muy acelerados, se reemplazó los tubos al vacío por transistores en 1958 y en el mismo año, se sustituyeron por circuitos integrados, y en 1961 se miniaturizaron en chips de silicio.   En 1971 apareció el primer microprocesador de Intel;  y en 1973 el primer sistema operativo CP/M.  El primer computador personal es comercializado por IBM en el año 1980.

De acuerdo a este breve viaje por la historia, la programación está vinculada a la aparición de los computadores, y los lenguajes tuvieron también su evolución.  Inicialmente se programaba en código binario, es decir en cadenas de 0s y 1s, que es el lenguaje que entiende directamente el computador, tarea extremadamente difícil; luego se creó el lenguaje ensamblador, que aunque era lo mismo que programar en binario, al estar en letras era más fácil de recordar.  Posteriormente aparecieron lenguajes de alto nivel, que en general, utilizan palabras en inglés, para dar las órdenes a seguir, para lo cual utilizan un proceso intermedio entre el lenguaje máquina y el nuevo código llamado código fuente, este proceso puede ser un compilador o un intérprete.

Un compilador lee todas las instrucciones y genera un resultado; un intérprete ejecuta y genera resultados línea a línea. En cualquier caso han aparecido nuevos lenguajes de programación, unos denominados estructurados y en la actualidad en cambio los lenguajes orientados a objetos y los lenguajes orientados a eventos.

sábado, 13 de junio de 2020

¿Para que sirve la programación?¿Cual es la utilidad de aprender?

De una manera simplificada, podríamos decir que la programación informática es el proceso a través del cual se diseña, codifica, limpia y protege el código fuente de los programas de los ordenadores. Es a través de esta programación se crean los códigos fuente o software. A raíz de este código, a través de la programación se escribe, prueba y perfecciona.

La programación es una actividad profesional muy vinculada a la ingeniería, es una buena opción formarse en este ámbito ya seas ingeniero o no. De hecho, entre las habilidades más demandadas por las empresas se encuentran la programación.

Hoy en día hay una gran oferta de cursos de formación de programación web, desde másteres muy concretos y especializados a cursos más básicos y breves. Hoy en día, se buscan perfiles polifacéticos con conocimientos técnicos, a pesar de ser básicos. Por ello, en función de la especialización que quieras tomar podrás escoger aquel curso que se adapte más a tus necesidades formativas y tus conocimientos iniciales en el área.





viernes, 12 de junio de 2020

¿Que es la programación?

Programación es el proceso de tomar un algoritmo y codificarlo en una notación, un lenguaje de programación, de modo que pueda ser ejecutado por una computadora. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad de tener una solución. Sin un algoritmo no puede haber un programa.




Las ciencias de la programación no son el estudio de la programación. La programación, sin embargo, es una parte importante de lo que hace un científico de la computación. La programación es a menudo la manera en la que creamos una representación para nuestras soluciones. Por tanto, esta representación en un lenguaje y el proceso de crearla se convierte en una parte fundamental de la disciplina.

Los algoritmos describen la solución a un problema en términos de los datos requeridos para representar el caso del problema y el conjunto de pasos necesarios para producir el resultado pretendido. Los lenguajes de programación deben suministrar un modo notacional para representar tanto el proceso como los datos. Para este fin, los lenguajes suministran estructuras de control y tipos de datos.

Las estructuras de control permiten que los pasos algorítmicos sean representados de una manera conveniente pero sin ambigüedades. Como mínimo, los algoritmos requieren estructuras que lleven a cabo procesamiento secuencial, selección para toma de decisiones e iteraciones para control repetitivo. Siempre y cuando el lenguaje proporcione estas instrucciones básicas, éste puede ser usado para la representación del algoritmo.

Todos los ítems de datos en la computadora están representados como cadenas de dígitos binarios. Con el fin de darle significado a estas cadenas, necesitamos tener tipos de datos. Los tipos de datos brindan una interpretación para estos datos binarios de modo que podamos considerarlos en términos que tengan sentido con respecto al problema que está siendo resuelto. Estos tipos de datos incorporados de bajo nivel (a menudo denominados tipos de datos primitivos) proporcionan los bloques constructivos para el desarrollo de algoritmos.

Por ejemplo, la mayoría de lenguajes de programación proporcionan un tipo de datos para los enteros. Las cadenas de dígitos binarios en la memoria de la computadora pueden interpretarse como enteros y se les dan los significados típicos que comúnmente asociamos con los enteros (e.g. 23, 654 y -19). Además, un tipo de datos también proporciona una descripción de las operaciones en las que los ítems de datos pueden participar. Con enteros, son comunes las operaciones tales como la suma, la resta y la multiplicación. Podemos dar por sentado que los tipos de datos numéricos puedan participar en estas operaciones aritméticas.

La dificultad que a menudo nos surge es el hecho que los problemas y sus soluciones son muy complejos. Estas estructuras y tipos de datos simples, suministrados por el lenguaje, si bien son ciertamente suficientes para representar soluciones complejas, están típicamente en desventaja a medida que trabajamos en el proceso de solución de problemas. Requerimos maneras de controlar esta complejidad y contribuir con la creación de soluciones.

Fuente: 

https://runestone.academy/runestone/static/pythoned/Introduction/QueEsProgramacion.html