PDF de programación - ALPHA: Una notación algorítmica basada en pseudocódigo

Imágen de pdf ALPHA: Una notación algorítmica basada en pseudocódigo

ALPHA: Una notación algorítmica basada en pseudocódigográfica de visualizaciones

Publicado el 20 de Octubre del 2018
826 visualizaciones desde el 20 de Octubre del 2018
388,0 KB
25 paginas
Creado hace 9a (05/02/2015)
ALPHA: UNA NOTACIÓN ALGORÍTMICA BASADA EN PSEUDOCÓDIGO

(Alpha: An algorithm notation based on pseudocode)

Recibido: 12/09/2014 Aprobado: 24/10/2014

Ramírez, Esmitt
Universidad Central de Venezuela, Venezuela
[email protected]

RESUMEN

lenguaje natural, algún

En las Ciencias de la Computación, un algoritmo es un conjunto ordenado de
instrucciones que permiten realizar una tarea mediante pasos sucesivos, tomando datos
de entrada sobre un estado inicial para arrojar una salida. Así, un algoritmo puede ser
expresado de muchas maneras: usando
lenguaje de
programación, diagramas de flujo, pseudocódigo, entre otros. Particularmente, el
pseudocódigo ofrece una descripción de alto nivel de un algoritmo mezclando el lenguaje
natural con sintaxis de uno o muchos lenguajes de programación. El pseudocódigo es
ampliamente empleado en diversos libros de texto, publicaciones científicas, cátedras
universitarias, y como producto intermedio durante la fase de desarrollo de software. Sin
embargo, el pseudocódigo no está basado en ningún estándar o notación, presentando
una gran variación entre distintos grupos de investigación y desarrollo. En este trabajo se
propone una notación para la construcción de algoritmos y estructuras de datos que es
simple, eficaz y moderna, permitiendo una rápida conversión entre el pseudocódigo y un
lenguaje de programación. Entonces, se describe de forma detallada la sintaxis y
convenciones empleadas en la notación propuesta ofreciendo una poderosa y útil
herramienta con soporte a diversos enfoques de programación. Las pruebas realizadas
demuestran su uso en la construcción de estructuras de datos complejas y al mismo
tiempo verifican su impacto en un curso de Algoritmia.

Palabras clave: notación algorítmica, algoritmos, programación, pseudocódigo

ABSTRACT

In computer science, an algorithm is an ordered set of instructions that allow you to
perform a task by consecutive steps, taking input data for an initial state to obtain an
output. Thus, an algorithm can be expressed in different ways: using natural language,
some programming language, flowcharts, pseudo code, and others. Particularly, the
pseudo code offers a high-level description of an algorithm by mixing the natural language
syntax with one or several programming languages. The pseudo code is widely used in
various textbooks, scientific papers, university departments, and as an intermediate
product during the software development process. However, the pseudo code is not
standard-based or any notation offering a large disparity between different research and
development groups. In this paper, we present a notation for algorithms and data
structures development that are simple, effective and modern, allowing a quick conversion
between the pseudo code and a programming language. Then, a detailed syntax and



97



5
1
0
2



i

o
n
u
J





o
r
e
n
E
1



i

i



o
N
n
ó
c
d
E
4
1
n
e
m
u
o
V



l


.

4
9
1
4
-
6
5
8
1


:

N
S
S

I

/

2
4
1
2
U
Z
2
0
0
0
0
2
X
P
P
P


:
l
a
g
e
L



o

t
i
s
ó
p
e
D





conventions used in the notation proposed is described, offering a powerful and useful tool
to support different programming approaches. The performed tests show its use in the
construction of complex data structures while verifying its impact in an Algorithms course.

Keywords: algorithm notation, algorithms, programming, pseudo code

INTRODUCCIÓN

En la escritura de algoritmos es posible distinguir tres modelos de construcción y
diseño de éstos: seguir la sintaxis de un lenguaje de programación conocido como Java,
PHP, Basic, etc.; emplear un lenguaje natural basado en sentencias lógicas correctas
como “asignar a la variable X el valor leído”; o emplear un lenguaje híbrido producto de
mezclar frases del lenguaje natural con sentencias correctas en uno o más lenguajes de
programación (también llamado pseudocódigo).

Tomando el primer modelo, es posible que se dificulte separar la idea del algoritmo de
los detalles de implementación. Un ejemplo notable de ello se observa en Sedgewick y
Wayne (2011), donde se emplea el lenguaje Java para la explicación de los algoritmos.
Sin embargo, dichos autores tratan de mitigar dicho problema empleando solo un
subconjunto del lenguaje Java y considerando que la sintaxis es muy similar en muchos
lenguajes de programación modernos (e.g. C#, C++, F#, entre otros).

El segundo modelo es creado de forma empírica siguiendo un patrón lógico de
desarrollo de software. Bajo este concepto, se han diseñado diversos lenguajes de
programación tales como Hyper Talk, Lingo, AppleScript, SQL, Python, entre otros, donde
la idea detrás de éstos reside en que cualquier persona sin conocimiento directo de un
lenguaje en particular pueda entender el código escrito, y posteriormente aprenderlo.

El tercer modelo (junto al primero) es uno de los más empleados en libros de texto y
artículos científicos y se conoce como pseudocódigo, pseudoformal o pseudolenguaje.
Este se comporta como una descripción compacta, sin detalle de implementación y en
ocasiones asociado a un estilo de lenguaje de programación (conocido como pidgin code:
estilo C++, estilo Java, estilo Fortran, etc.). Del mismo modo, el pseudocódigo se emplea
en las aulas de clases de diversos cursos de algoritmia a nivel de educación superior e
universitaria.

Diversos autores reconocidos en el área de las Ciencias de la Computación escriben
sus textos basados en un pseudocódigo para la explicación de sus algoritmos (Dasgupta,
y col., 2008; Cormen y col., 2009; Skiena, 2010). Sin embargo, no existe una sintaxis
estándar para el pseudocódigo, dado que no es directamente un programa ejecutable por
un computador.

En este trabajo se presenta una propuesta de notación para la construcción de
algoritmos basado en pseudocódigo que es simple, eficaz y permite una rápida
conversión a algún lenguaje de programación. Dicha notación, denominada Alpha,
soporta diversas los elementos básicos de un lenguaje de programación tales como



98



5
1
0
2



i

o
n
u
J





o
r
e
n
E
1



i

i



o
N
n
ó
c
d
E
4
1
n
e
m
u
o
V



l


.

9
8
1
6
-
6
5
8
1


:

N
S
S

I

/

3
1
3
2
U
Z
2
0
1
0
0
2
X
P
P


:
l
a
g
e
L



o

t
i
s
ó
p
e
D





variables, sentencias, estructuras iterativas, estructuras de control, tipos de datos, entre
otros.

La notación Alpha integra elementos fundamentales presentes en lenguajes de
programación modernos siendo un instrumento poderoso para la construcción de
algoritmos.

La organización de este artículo es como sigue: la sección 2 presenta una serie de
trabajos relacionados previos a esta investigación que sirven de soporte del estudio
realizado. La sección 3 describe en detalle la notación Alpha, incluyendo la sintaxis y
operaciones básicas así como las estructuras de datos y de control en pseudocódigo de la
notación. Las pruebas realizadas y resultados obtenidos se muestran en la sección 4.
Finalmente, se presentan las conclusiones y trabajos a futuro propuestos en la sección 5.

TRABAJOS PREVIOS

Según Zobel (2010), un programador que requiera implementar un algoritmo en
específico, especialmente uno al cual no está familiarizado, primero debe comenzar con
una descripción en pseudocódigo y luego convertir esta descripción en el lenguaje
destino.

Igualmente, en grupos de trabajo de desarrollo con programadores, el intercambio de
información e ideas se puede realizar empleando dicho pseudolenguaje para bosquejar y
estructurar algoritmos.

Aunado a ello, existen alternativas gráficas al uso de pseudocódigo para la descripción
de algoritmos que es empleado en diversos grupos interdisciplinarios, tales como
diagramas de flujo las cuales siguen convenciones formales en su construcción o
diagramas UML (Unified Modeling Language) (Larman, 2004) (Sharp, 2008).

Bailey y Lundgaard (1989) proponen diversas estructuras formales que permiten
separar la lógica de programación de un lenguaje de programación en particular. Entre
estas estructuras definen un pseudocódigo que, junto a los diagramas de flujo, diagramas
IPO (Input-Processing-Output), gráficos de jerárquicos, entre otros, permiten enriquecer la
explicación de diferentes técnicas para la resolución de problemas computacionales.
Posteriormente, diversos autores proponen la utilización del pseudocódigo para la
construcción de software (McConnell, 2004; Gilberg, & Forouzan, 2004).

De igual modo, se han propuesto notaciones formales basadas en lenguaje de
programación matemática como Z notation (Spivey, 1992) o Vienna Development Method
Specification Language - VDM-SL (Jones, 1990).

Gran parte de los pseudocódigos existentes son diseñados para la programación
imperativa. Así, la influencia de lenguajes clásicos como BASIC, Fortran, Pascal y C se
puede percibir de forma natural en la construcción de algoritmos de muchos esquemas de
pseudocódigo. Actualmente, muchas de las estructuras de datos o instrucciones creadas
han sido modificadas para adaptarse a los lenguajes modernos.



99



5
1
0
2



i

o
n
u
J





o
r
e
n
E
1



i

i



o
N
n
ó
c
d
E
4
1
n
e
m
u
o
V



l


.

9
8
1
6
-
6
5
8
1


:

N
S
S

I

/

3
1
3
2
U
Z
2
0
1
0
0
2
X
P
P


:
l
a
g
e
L



o

t
i
s
ó
p
e
D
  • Links de descarga
http://lwp-l.com/pdf13958

Comentarios de: ALPHA: Una notación algorítmica basada en pseudocódigo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad