No soy un experto en idiomas, pero recientemente estoy en idiomas y tratando de obtener una visión general de los principales conceptos y "sus" idiomas. Esto es similar a another question about books. Entonces, primero, ¿cuáles son los principales conceptos del lenguaje de programación, p.¿Cuáles son los diferentes conceptos de lenguaje de programación y qué idiomas los muestran de forma pura?
- estructurada
- procedimiento
- objeto orientado
- orientado a objetos - prototipo basado (por ejemplo Java Script)
- funcional (por ejemplo Haskell)
- lógica orientada (por ejemplo Prolog)
- meta (si es un concepto puro de su propiedad?)
- basado en pila (por ej., Forth)
- basado en matriz/orientado a matriz (p. APL)
- declarativa
- por concatenación (por ejemplo, PostScript)
- (definitivamente lista incompleta ...)
y en segundo lugar para conseguir una buena CRASP de estos conceptos, lo que sería el lenguaje de programación que se basa ¿Está implementando su concepto central de la manera más natural y pura?
- Por ejemplo, Java es OO, pero no es un buen ejemplo porque no es puro OO debido a los átomos.
- Lisp es conocido por ser un lenguaje funcional, pero es multi-paradigma, por lo que no es puro. Pero Lisp puede ser una implementación pura de "basado en listas" (si cuenta como concepto).
- ¿Hay un lenguaje estructurado (no GOTO) pero no de procedimiento? (Tal vez XSLT v1.x)
Smalltalk no es prototípico. SELF es. Además, varios de los "conceptos" anteriores no son ortogonales. Debería hablarse de * aspectos específicos * de cada idioma en comparación unos con otros (incluso los términos anteriores pueden cambiar el significado en función del contexto/idioma). SQL también está "orientado a conjuntos" (pero un "lenguaje de consulta declarativa"), no está orientado a la tabla :-) –
@pst gracias, eliminé los ejemplos incorrectos. –
Por cierto, gracias por no elegir Java como primer ejemplo OO. – delnan