¿Qué es real?
Porque Real es solo en definición para un intérprete .
¿El mandarín es más o menos real que el inglés?
- Ciertamente, el mandarín no es particularmente útil para un hablante de inglés
- Del mismo modo, el inglés no tiene sentido para un hablante de mandarín
- a menos que hablen ambos.
Entonces, Real ni siquiera es la pregunta. Vamos a reformularlo:
¿Por qué se utiliza el pseudocódigo en lugar de un lenguaje formal?
Un simple diagrama de VENN puede resaltar el problema fácilmente. El conjunto de todos los humanos que hablan inglés y mandarín es el subconjunto de hablantes de inglés o mandarín. Debido a que se requiere esfuerzo para obtener competencia en cualquier idioma, la intersección es generalmente mucho más pequeña que la unión.
El libro de texto sobre programación puede presumir que comprende al menos un lenguaje natural, el idioma en el que está escrito el libro de texto. En general, es seguro presumir esto, ya que de lo contrario se hubiera seleccionado un libro de texto diferente y más legible. Después de todo, aprender un idioma es bastante difícil, dos es más difícil.
Esto da la primera razón para usar un pseudocódigo. Maximiza la audiencia que podría leer fácilmente el libro. Esto se hace siguiendo las convenciones de lenguaje establecidas que ya se encuentran en el lenguaje natural. Digamos recetas de cocina, fórmulas matemáticas, etc. Cualquier brecha se puede cerrar con una explicación rápida del lenguaje natural o, si no, un recurso final a nuestro sistema visual con imágenes.
En cuanto a por qué el lenguaje común no podría ser el lenguaje de programación. Le dejo que considere cuánto mandarín (o cualquier idioma que aún no hable) haya aprendido al leer un libro sobre programación escrito con ejemplos dados en un lenguaje de programación familiar.
Lo que logra un libro de texto
En cuanto a la segunda razón, considere lo que debe lograr un libro de texto:
- explique por qué se molestarían en aprender un idioma extraño en lugar de simplemente usar su lenguaje natural.
- Explicar al lector un idioma extraño para que pueda hablarlo por sí mismo.
Por qué programa
La mayor parte del libro tiene que convencerte de por qué querrías aprender y usar este idioma extraño o cualquier otro idioma similar. Esto significa discutir la esencia de la programación misma.
- ¿Cómo identificas un problema?
- ¿Cómo se separa un problema?
- ¿Cómo se crean los datos?
- ¿Cómo se diseñan los procesos?
- ¿Cómo gestionas las dependencias?
- ¿Cómo identificas las fallas?
- y más
La mayor parte de esto no tiene nada que ver con las máquinas en sí, es principalmente una discusión sobre cómo debe funcionar la carne para llevar a cabo un programa. Eso es bastante complejo porque tiene que mostrar por qué vincularíamos nuestros objetivos espaciales humanos, para programar problemas espaciales y tratar de resolverlos.
Describiendo un programa
El segundo logro del libro de texto es describir un idioma. Ahora la mayoría de los lenguajes de programación se pueden describir con una gramática y algunas reglas semánticas. En el extremo poco profundo están los lenguajes como JSON, que se pueden definir de manera bastante completa en aproximadamente tres páginas. Los lenguajes más complejos necesitan una especificación más grande, pero en su mayor parte no necesitan una comprensión total para ser útiles. Sin embargo, estas descripciones son Pseudocódigo. Especifican el lenguaje formal en términos de un lenguaje natural. La diferencia es que estos pseudocódigos se especifican de antemano.
Ahora que incluso los lenguajes formales son pseudocódigos (ejecutables), la pregunta es ¿qué es lo más importante al describir un algoritmo? El siguiente contexto más grande.
- El algoritmo tiene un objetivo que es razonable en ese contexto,
- ese contexto tiene algunas restricciones,
- y el algoritmo es una descripción de cómo se pueden manejar esas restricciones mientras se logra el objetivo.
En ningún momento es importante el lenguaje en el que está escrito el algoritmo. En todo caso, solo unas pocas operaciones clave son críticas para el éxito de los algoritmos. Entonces la pregunta se convierte en:
- ¿Es mejor describir un programa de hardware capaz de interpretar la especificación completa de un lenguaje formal como C ++ / C # / Python / etc ... para comprender el algoritmo
- o simplemente defina las 4 primitivas necesarias para comprender el algoritmo.
Dado que aprender un idioma es difícil, y el lector debe haber aprendido / aprender un idioma para comprender el algoritmo, como escritor de un libro de texto, ¿qué debe preguntarle al lector?