He escuchado varias veces que cada programador debe aprender uno de cada tipo de lenguaje. Ahora, esto no es necesariamente cierto, pero creo que es una buena idea.
Aprendí un lenguaje de procedimiento (Perl), pero ¿cuáles son los otros tipos?
¿Cuáles son las diferencias entre ellos y cuáles son algunos ejemplos de cada uno?
programming-languages
paradigms
Dinámica
fuente
fuente
Respuestas:
Aunque la terminología está lejos de ser estandarizada, una forma común de categorizar los principales paradigmas de programación en
Parece que ya sabes cómo es la programación de procedimientos.
En lenguajes funcionales , las funciones se tratan como objetos de primera clase. En otras palabras, puede pasar una función como argumento a otra función, o una función puede devolver otra función. El paradigma funcional se basa en el cálculo lambda, y ejemplos de lenguajes funcionales son LISP, Scheme y Haskel. Curiosamente, JavaScript también es compatible con la programación funcional.
En la programación lógica , usted define predicados que describen relaciones entre entidades, como
president(Obama, USA)
opresident(Medvedev, Russia)
. Estos predicados pueden volverse muy complicados e involucrar variables, no solo valores literales. Una vez que haya especificado todos sus predicados, puede hacer preguntas a su sistema y obtener respuestas lógicamente consistentes.La gran idea en la programación lógica es que en lugar de decirle a la computadora cómo calcular las cosas, le dices cuáles son las cosas. Ejemplo: PROLOG.
El paradigma orientado a objetos es de alguna manera una extensión de la programación de procedimientos. En la programación de procedimientos, tiene sus datos, que pueden ser tipos primitivos, como enteros y flotantes, tipos compuestos, como matrices o listas, y tipos definidos por el usuario, como estructuras. También tiene sus procedimientos, que operan en los datos. Por el contrario, en OO tiene objetos, que incluyen tanto datos como procedimientos. Esto le permite tener cosas buenas como encapsulación, herencia y polimorfismo. Ejemplos: Smalltalk, C ++, Java, C #.
La programación genérica se introdujo por primera vez en Ada en 1983, y se generalizó después de la introducción de plantillas en C ++. Esta es la idea de que puede escribir código sin especificar los tipos de datos reales en los que opera, y que el compilador lo descubra. Por ejemplo en lugar de escribir
tu escribirias
una vez, y que el compilador genere un código específico para lo
T
que sea, cuandoswap()
realmente se usa en el códigoLa programación genérica es compatible en diversos grados con C ++, Java y C #.
Es importante tener en cuenta que muchos lenguajes, como C ++, admiten múltiples paradigmas. También es cierto que incluso cuando se dice que un lenguaje admite un paradigma particular, puede no admitir todas las características del paradigma. Sin mencionar que hay un gran desacuerdo sobre qué características se requieren para un paradigma particular.
fuente
Los lenguajes de programación tienen una serie de características mayormente ortogonales; el más destacado radica en el paradigma o paradigmas que apoyan. El artículo de wikipedia cubre paradigmas exhaustivamente; Los paradigmas más importantes son probablemente estos:
Pero los idiomas también difieren en otros aspectos:
fuente
Hay varios paradigmas de programación diferentes que están actualmente de moda:
fuente
Prolog es un lenguaje de programación lógico y es relativamente fácil comenzar con él. Requiere un pensamiento completamente diferente a la programación de procedimientos, por lo tanto, es bueno explorar cuando estás tratando de estirar tu cerebro.
Si va a la universidad, debe tomar un curso sobre Lenguajes de programación, ya que está orientado a introducir los diferentes tipos de lenguajes de programación y para qué se utilizan mejor.
fuente
La mayoría de los lenguajes principales combinan aspectos de programación imperativa, funcional y declarativa. Los lenguajes de nicho tienden a ser más exóticos o introducen nuevas ideas interesantes que, por una razón u otra, no son adecuadas para la programación de propósito general. Algunos, de ninguna manera exhaustivos, ejemplos:
(+/ % #)&.:*:
calcula el RMS de una matriz. Famoso por ser conciso, conocido por ser ilegible.fuente