Como regla general , más dinámico y abstraído la sintaxis o la semántica o la aplicación son, cuanto más complejo es el idioma (no usar como ha afirmado).
Por lo tanto, Java es un lenguaje más complejo que C, porque:
- C tiene reglas simples de alcance vs reglas relativamente complejas de Java
- tipos son más complejos, la resolución de métodos y sobrecarga
- Cosas como inheretance, argumento enumeration and checking, método de sobrecarga hace que el proceso de compilación sea mucho más complejo.
Podría argumentar Python más simple que Java sobre esta base, porque es un modelo de objeto, aunque complejo, es simple en términos de reducción en una forma más simple. La facilidad con que una sintaxis dada puede ser traducida a una forma más simple desde una perspectiva de tiempo y cálculo también puede ser un ángulo.
un lenguaje como Lisp, por otro lado, algunos podrían argumentar es difíciles de usar pero muy simple. Lo mismo ocurre con cosas como Haskell.
se pudiera medir la complejidad en una de las siguientes maneras, pero no está completa:
- El número de palabras clave, líneas de código y la complejidad de la semántica (como identificador de resolución) para un problema sencillo. El cálculo de Fibonacci podría ser uno. Comparando la implementación agradablemente eficiente de algoritmos comunes.
- ¿Qué ocurre cuando? ¿Los nombres están vinculados tarde en tiempo de ejecución, o se resuelven en tiempo de compilación?
- ¿Podría un fragmento de código dado ser entendido de más de una manera, cuando no se dan todos los hechos de los identificadores, los tipos y el código externo?
Hay toneladas de formas. Puede medir la complejidad computacional del proceso de compilación para una sintaxis dada.
No todos estos ejemplos son ciertos. Algunos modelos de objetos son muy complejos, pero muy rápidos porque usan una base rápida. El yo puede ser un ejemplo.
Primero debe definir la 'complejidad del idioma'. –
Supongo que la complejidad de la implementación en lugar de utilizar –
Escribí un Q/A en cstheory SE sobre este mismo tema (si lo leo bien). Busque el cociente de Kolmogorov para medir la elegancia o la concisión del lenguaje de programación, la capacidad que tiene un lenguaje de programación para simplificar el complejo. – theDoctor