stringtranslate.com

Pseudocódigo

En informática , el pseudocódigo es una descripción de los pasos de un algoritmo que utiliza una combinación de convenciones de lenguajes de programación (como operador de asignación , operador condicional , bucle ) con notación informal, generalmente autoexplicativa, de acciones y condiciones. [1] [2] Aunque el pseudocódigo comparte características con los lenguajes de programación habituales , está pensado para la lectura humana en lugar del control de una máquina. El pseudocódigo normalmente omite detalles que son esenciales para la implementación automática del algoritmo. El lenguaje de programación se complementa con detalles de descripción en lenguaje natural , cuando sea conveniente, o con notación matemática compacta . El propósito de utilizar pseudocódigo es que sea más fácil de entender para las personas que el código del lenguaje de programación convencional y que sea una descripción eficiente e independiente del entorno de los principios clave de un algoritmo. Se utiliza comúnmente en libros de texto y publicaciones científicas para documentar algoritmos y en la planificación de software y otros algoritmos.

No existe un estándar amplio para la sintaxis del pseudocódigo , ya que un programa en pseudocódigo no es un programa ejecutable; sin embargo, existen ciertos estándares limitados (como los de evaluación académica). El pseudocódigo se parece a los programas esqueleto , que se pueden compilar sin errores. Los diagramas de flujo , los diagramas drakon y los diagramas en lenguaje de modelado unificado (UML) pueden considerarse una alternativa gráfica al pseudocódigo, pero necesitan más espacio en papel. Lenguajes como HAGGIS cierran la brecha entre el pseudocódigo y el código escrito en lenguajes de programación.

Solicitud

Los libros de texto y publicaciones científicas relacionadas con la informática y la computación numérica suelen utilizar pseudocódigo en la descripción de algoritmos, de modo que todos los programadores puedan entenderlos, incluso si no todos conocen los mismos lenguajes de programación. En los libros de texto, suele haber una introducción que explica las convenciones particulares en uso. En algunos casos, el nivel de detalle del pseudocódigo puede acercarse al de los lenguajes formalizados de propósito general.

Un programador que necesita implementar un algoritmo específico, especialmente uno desconocido, a menudo comenzará con una descripción en pseudocódigo y luego "traducirá" esa descripción al lenguaje de programación de destino y la modificará para interactuar correctamente con el resto del programa. Los programadores también pueden comenzar un proyecto esbozando el código en pseudocódigo en papel antes de escribirlo en su lenguaje real, como un enfoque de estructuración de arriba hacia abajo , con un proceso de pasos a seguir como refinamiento.

El pseudocódigo se usa ampliamente en la estandarización, con ejemplos notables proporcionados por los estándares MPEG que hacen un uso muy intensivo de pseudocódigo tipo C y no se pueden entender sin comprender los detalles del código. [3]

Sintaxis

El pseudocódigo generalmente no obedece las reglas de sintaxis de ningún lenguaje en particular; no existe una forma estándar sistemática. Algunos escritores toman prestado el estilo y la sintaxis de las estructuras de control de algún lenguaje de programación convencional, aunque no se recomienda hacerlo. [4] [5] Algunas fuentes de sintaxis incluyen Fortran , Pascal , BASIC , C , C++ , Java , Lisp y ALGOL . Normalmente se omiten las declaraciones de variables. Las llamadas a funciones y los bloques de código, como el código contenido dentro de un bucle, a menudo se reemplazan por una oración de una línea en lenguaje natural.

Por lo tanto, dependiendo del escritor, el pseudocódigo puede variar ampliamente en estilo, desde una imitación casi exacta de un lenguaje de programación real en un extremo, hasta una descripción que se aproxima a la prosa formateada en el otro.

Pseudocódigo de estilo matemático

En la computación numérica , el pseudocódigo a menudo consiste en notación matemática , típicamente de la teoría de matrices y conjuntos , mezclada con las estructuras de control de un lenguaje de programación convencional y quizás también con descripciones en lenguaje natural . Se trata de una notación compacta y a menudo informal que puede ser entendida por una amplia gama de personas con formación matemática y que se utiliza con frecuencia como forma de describir algoritmos matemáticos . Por ejemplo, el operador de suma ( notación sigma mayúscula ) o el operador de producto ( notación pi mayúscula ) pueden representar un bucle for y una estructura de selección en una expresión:

Devolver

Normalmente, para las ecuaciones matemáticas se utiliza composición tipográfica no ASCII , por ejemplo mediante lenguajes de marcado, como TeX o MathML , o editores de fórmulas propietarios .

El pseudocódigo de estilo matemático a veces se denomina código pidgin , por ejemplo pidgin ALGOL (el origen del concepto), pidgin Fortran , pidgin BASIC , pidgin Pascal , pidgin C y pidgin Lisp .

Símbolos matemáticos comunes

Ejemplo

A continuación se muestra un ejemplo más extenso de pseudocódigo de estilo matemático, para el algoritmo Ford-Fulkerson :

Se ingresa  el algoritmo de Ford-Fulkerson : Gráfico G con capacidad de flujo c , nodo fuente s ,Salida t del nodo sumidero : Flujo f tal que f es máximo de s a t (Tenga en cuenta que f (u,v) es el flujo desde el nodo u al nodo v, y c (u,v) es la capacidad de flujo desde el nodo u al nodo v) para cada arista ( u , v ) en  G E  do  f ( u , v ) ← 0 f ( v , u ) ← ​​0 si bien existe un camino p de s a t  en la red residual G f  , sea c f la capacidad de flujo de la red residual G f c f ( p ) ← min{ c f ( u , v ) | ( u , v ) en p } para cada arista ( u , v ) en p do f ( u , v )f ( u , v ) + c f ( p ) f ( v , u ) ← − f ( u , v )      regresar  f

Compilación automática de lenguajes de estilo pseudocódigo.

Gramática del lenguaje natural en lenguajes de programación.

Varios intentos de incorporar elementos de la gramática del lenguaje natural a la programación informática han producido lenguajes de programación como HyperTalk , Lingo , AppleScript , SQL , Inform y, hasta cierto punto, Python . En estos idiomas, los paréntesis y otros caracteres especiales se reemplazan por preposiciones, lo que da como resultado un código bastante detallado. Estos lenguajes suelen escribirse dinámicamente , lo que significa que se pueden omitir declaraciones de variables y otro código repetitivo . Dichos lenguajes pueden facilitar que una persona sin conocimientos sobre el idioma comprenda el código y quizás también aprenda el idioma. Sin embargo, la similitud con el lenguaje natural suele ser más cosmética que genuina. Las reglas de sintaxis pueden ser tan estrictas y formales como en la programación convencional y no necesariamente facilitan el desarrollo de los programas.

Lenguajes de programación matemática

Una alternativa al uso de pseudocódigo matemático (que involucra notación de teoría de conjuntos u operaciones matriciales) para la documentación de algoritmos es usar un lenguaje de programación matemática formal que sea una combinación de notación matemática no ASCII y estructuras de control de programas. Luego, el código puede ser analizado e interpretado por una máquina.

Varios lenguajes de especificación formal incluyen notación de teoría de conjuntos utilizando caracteres especiales. Ejemplos son:

Algunos lenguajes de programación de matrices incluyen expresiones vectorizadas y operaciones matriciales como fórmulas no ASCII, mezcladas con estructuras de control convencionales. Ejemplos son:

Ver también

Referencias

  1. ^ Reisig 2007, pag. 23, Programas de pseudocódigo y su semántica.
  2. ^ Una definición de pseudocódigo que se repite con frecuencia desde al menos 2003 es "una descripción detallada pero legible de lo que debe hacer un programa o algoritmo de computadora, expresada en un lenguaje natural de estilo formal".
  3. ^ Mitchell y col. 1996, pág. 105.
  4. ^ McConnell, Steve (2004). Código completo . Educación Pearson. pag. 54.ISBN _ 978-0-7356-1967-8. Evite elementos sintácticos del lenguaje de programación de destino.
  5. ^ Invitación a la informática, octava edición de Schneider/ Gersting , "Mantenga el lenguaje de las declaraciones independiente" como se cita en esta pregunta de intercambio de pila

Otras lecturas

enlaces externos