¿Qué es el pseudocódigo?

19

He visto muchas menciones de Pseudocódigo últimamente, en este sitio y en otros. Pero no lo entiendo:

  • ¿Qué es el pseudocódigo? Por ejemplo, el siguiente artículo de Wikipedia dice "Utiliza las convenciones estructurales de un lenguaje de programación, pero está destinado a la lectura humana en lugar de la lectura automática". ¿Esto significa que en realidad no se usa para hacer programas?

  • ¿Por qué se usa?

  • ¿Cómo se usa?
  • ¿Se considera un lenguaje de programación? (Ver la cita de Wikipedia anterior)
  • ¿Es comúnmente conocido / usado?

Sinceramente, no sé por dónde empezar con esto. Lo busqué en Google y vi el artículo de Wikipedia sobre el tema , pero todavía no entiendo completamente qué es.

Dinámica
fuente
77
Proporcione citas y preguntas específicas del artículo de Wikipedia. Todas sus preguntas son respondidas allí. Si no puede entender las palabras o frases, cite una palabra o frase específica en su pregunta para que podamos explicarla. Es difícil saber lo que encontraste confuso en ese artículo. En lugar de repetir ese artículo aquí, sería útil si pudiera hacer referencia a las cosas específicas que lo confundieron.
S.Lott
@ S.Lott: Terminado
Dinámico
20
while (you.doNotUnderstand(pseudocode)) { q = you.askQuestion(); a = we.answer(q); you.digestAnswer(a) }
Joachim Sauer
3
if (question.IsAnswered) then you.UnderstandPseudoCode <- true
e-MEE
1
Es un término medio entre el lenguaje natural y el lenguaje de programación: es más formal que el lenguaje hablado, pero menos formal que un lenguaje de programación real.
Ingo

Respuestas:

19

El pseudocódigo no es, como su nombre lo indica, código real, pero parece código. Ayuda a las personas a comprender mejor el dominio o la solución de un problema sin tener que agregar todo el equipaje necesario al usar un idioma real.

En resumen: se usa solo con fines ilustrativos.

Pseudocódigo y programación
No existe una definición o regla fija de pseudocódigo, puede ser diferente cada vez. No es un lenguaje de programación (real) y nadie lo considerará uno. No puede compilarse ni utilizarse como un lenguaje de programación real: si puede hacerlo, deja de ser un seudocódigo. El pseudocódigo no necesita ser determinista (una necesidad para que las computadoras lo compilen), sino que debe ser entendido por los humanos. Para usar el pseudocódigo, deberá convertirlo a su lenguaje de programación favorito. Este proceso de conversión puede ser diferente cada vez y no se pueden dar reglas porque, nuevamente, el pseudocódigo es como la libertad de expresión: puede tomar cualquier forma.

Usos
Se usa comúnmente, especialmente en la fase de diseño de proyectos para ayudar a comprender un cierto enfoque de un problema. También se usa comúnmente en el diseño de algoritmos, o cuando los maestros dibujan algo en la pizarra. En todos estos casos no es necesario compilar el código, solo desea comprender el problema / solución.

Tipos de pseudocódigo El pseudocódigo
puede ser, pero no tiene que ser de cierto tipo, es decir, puede tener un pseudocódigo basado en pila para ilustrar MSIL, puede tener un pseudocódigo imperativo para ilustrar Java, C #, C ++, Python, usted puede tener un pseudocódigo funcional para ilustrar F #, Haskell, SQL, etc.

Ejemplos
Desde lo más alto de mi cabeza, pero todo vale, porque el pseudocódigo se puede inventar en el acto:

Pseudocódigo XML, que muestra una estructura head + body que permite múltiples elementos p:

<head ...
   <title ...
</
<body ...>
   (<p>...)+
</

Pseudocódigo imperativo, que muestra el problema del diamante en idiomas que admiten herencia múltiple:

class A() { readFile(); }
class B() : A {}       // overrides readFile in A
class C() : A {}       // overrides readFile in A
class D() : B, C {}    // what definition of readFile should be used?

Los dos ejemplos anteriores obviamente se parecen a algún (tipo de) lenguaje, pero en realidad no son ese idioma y no pueden compilarse. Más bien ilustran algo que quieres explicar.

Abel
fuente
14
Podría valer la pena agregar que el pseudocódigo puede vivir en cualquier nivel de abstracción: podría describir el funcionamiento específico de un algoritmo de una manera que sea fácilmente traducible a un no-pseudocódigo real, o podría dar un nivel muy alto Descripción general de algún enfoque que utiliza "métodos" u "objetos" muy ampliamente definidos. Es un amplio espectro.
Joachim Sauer
8

¿Qué es el pseudocódigo? Por ejemplo, el siguiente artículo de Wikipedia dice "Utiliza las convenciones estructurales de un lenguaje de programación, pero está destinado a la lectura humana en lugar de la lectura automática". ¿Esto significa que en realidad no se usa para hacer programas?

Es exactamente eso, es un código escrito en una forma amigable para los humanos. No se puede usar para hacer un programa de trabajo.

¿Por qué se hizo / se usa?

Porque Pseudocódigo es rápido de escribir y rápido de leer. Como no tiene partes específicas del idioma, es más claro de leer. También es independiente del idioma para que cualquiera pueda leerlo (por eso se usa en muchos libros de texto)

¿Se considera un lenguaje de programación? Consulte la cita de Wikipedia anterior.

No. Un lenguaje de programación requiere más que solo estructura. Requiere semántica formal, que carece de pseudocódigo.

¿Es comúnmente conocido / usado?

Si. Cualquier persona por encima de un nivel junior debería saber leer / escribir pseudocódigo. Es esencial para leer muchos libros de texto y códigos de planificación en un equipo.

Tom Squires
fuente
6

Si ha leído el artículo wiki, la mayoría de sus preguntas deben ser claras. Trataré de responderlas de una manera más simple aquí. Eche un vistazo a estos 2 ejemplos:

Parte 1 - Ejemplos

Código # 1 - Registro del cliente - Un ejemplo de los pasos del proceso:

  1. El cliente va a la pantalla de registro
  2. El cliente ingresa sus datos.
  3. Si ingresó detalles válidos, guarde la información del cliente en la base de datos
  4. De lo contrario, muestre el cuadro de diálogo con el mensaje de error 100.

Código # 2 - Validar nombre de cliente - Un ejemplo de función de programación

Function ValidateCustomerName(Name1)

If (Name1 is entered and Name2 is entered) then return 1

If (Name1 is not entered) 

   Send Error Message

   return 0

Endif

...

End Function

Parte 2 - Ahora a tus preguntas

¿Qué es el pseudocódigo?

Es una forma de escribir los pasos de un algoritmo o un proceso.

¿Por qué se hizo / se usa?

Se utiliza para mostrar el proceso o los pasos del algoritmo sin depender de un lenguaje de programación específico o anotaciones especiales.

¿Se considera un lenguaje de programación?

No es compilable y esto se debe a que no tiene una sintaxis específica y, por lo tanto, no es un lenguaje de programación.

Si es así, ¿es tan capaz como, digamos, Python?

Se puede hacer tan capaz como quieras. Puede escribir declaraciones como: Si la edad es válida ...

¿Es comúnmente conocido / usado?

Si. Es útil al pensar en algoritmos y para que los analistas de negocios proporcionen especificaciones.

Ninguna posibilidad
fuente
@Jae, agradezco la edición.
NoChance
4

El mejor ejemplo de Pseudocódigo fue cuando compartía una oficina con un programador FORTRAN, mientras programaba en Pascal. Cada vez que nos ayudamos, teníamos que escribirlo en Pseudocódigo. En ese momento no conocía FORTRAN, así que no tengo forma de obtener la sintaxis correcta (especialmente todas las sangrías requeridas para marcas específicas). Nunca tuvo que escribir con punto y coma. En la pizarra escribimos un Pseudocódigo para que se pueda entender, sin atascarse en reglas de sintaxis complejas.

No hay construcciones estrictas para Pseudocódigo. Si el escritor conoce un lenguaje que usa "{" después de una declaración if, lo pone en la pizarra, si sabe python, no lo sabe. El objetivo es esbozar rápidamente el enfoque básico del problema, no el código absolutamente correcto.

Los maestros pueden usarlo para guiar a un estudiante, sin darles la respuesta correcta. Una vez que sepa más de un idioma, el Pseudocódigo debería ser natural de usar al dibujar fragmentos de código.

mhoran_psprep
fuente
2

El seudocódigo no es un lenguaje, no una convención. Cada libro de texto o papel usaría su propia versión del pseudocódigo. Al igual que con muchos otros "lenguajes" matemáticos informales, en el mejor de los casos se describiría informalmente en el propio documento, en el peor de los casos los autores esperarían que fuera lo suficientemente "obvio".

SK-logic
fuente
En el mejor de los casos, es lo suficientemente obvio como para no requerir ninguna descripción formal o informal;).
Abel
@Abel, no existe el formalismo "obvio". Incluso algo tan "obvio" como la aritmética decimal debe introducirse adecuadamente. De lo contrario, la confusión es inevitable, por desgracia. Nunca he visto un seudocódigo inequívoco sin al menos alguna introducción formal adjunta.
SK-logic
Este hilo es sobre pseudocódigo. El formalismo no tiene nada que ver con eso. Pero mi comentario fue "juego de palabras";).
Abel
@Abel, un lenguaje abstracto también es un formalismo (al menos cuando se usa en un artículo más o menos científico).
SK-logic
2

¿Qué es el pseudocódigo?

El seudocódigo es básicamente instrucciones escritas de lo que debe hacer un programa para completar una operación. El pseudocódigo está escrito en su idioma de habla. Simplemente escriba los pasos de un algoritmo o procedimiento para que sea más fácil para usted u otra persona leerlo y convertirlo a un lenguaje de programación real.

¿Por qué se hizo / se usa?

Fue hecho para ayudarlo a especificar los pasos de un procedimiento, proceso o algoritmo sin usar un lenguaje de programación. Una alternativa posible es usar diagramas de flujo.

¿Se considera un lenguaje de programación?

No, no es un lenguaje de programación, ya que no hay reglas formales.

¿Es comúnmente conocido / usado?

Personalmente, siempre trato de usar pseudocódigo cuando escribo algoritmos o procedimientos complejos.

Chris Mylonas
fuente
0

Mi definición personal de pseudocódigo es "lo que escribo en inglés simple en una hoja de papel cuando diseño el código"

Antes de codificar desde un "diseño" de pseudocódigo, agregaré mi pseudocódigo como comentarios. Luego, trabajando en esos comentarios, puedo agregar el código "real" que realiza la tarea descrita.

Puede haber un nombre formal, del cual no estoy al tanto, para este método de codificación, y solo lo uso cuando hago algo nuevo / complicado.

AnthonyBlake
fuente
-4

Como dijo mi profesor de programación:

Pseudocódigo es la versión en inglés de cualquier lenguaje de programación.

CincauHangus
fuente
2
-1 No es útil. La cita solo tiene sentido entre una explicación de pseudocódigo (falta en esta respuesta). De lo contrario, podría ser bastante engañoso. Un novato podría preguntarse: bueno, los métodos de C # están todos en inglés, así que eso significa que C # que estoy usando es Pseudocódigo, ¿verdad ...? ¿Cómo lo llaman cuando usan C # en Alemania?
doppelgreener 01 de