低分化腺癌是什么意思| 小拇指旁边的手指叫什么| 心肌供血不足吃什么药| 身体发抖是什么病| 五什么十什么成语| 拔牙第二天可以吃什么| 远视眼是什么意思| 秉承是什么意思| 11月5号是什么星座| 爬虫什么意思| 早上起来口干口苦口臭是什么原因| 高危型hpv52阳性是什么意思| fm什么意思| 头疼是因为什么| 属蛇的和什么属相最配| 大鱼际疼是什么原因| 受戒是什么意思| 精索静脉曲张什么症状| 苏格兰牧羊犬吃什么| 台湾高山茶属于什么茶| 呕吐出血是什么原因| 手筋鼓起来是什么原因| 木灵念什么| 还记得年少时的梦吗是什么歌| 什么是颈椎病| 天王表属于什么档次| 疖肿用什么药膏| 上海以前叫什么| 检查血压挂什么科| 半套是什么意思| 定日是什么意思| 胎儿双侧肾盂无分离是什么意思| 途明是什么档次的包| 艾滋病什么症状| 月经老提前是什么原因| 跑步后头晕是什么原因| 伤寒是什么意思| 传染性单核细胞增多症是什么病| 1月22日什么星座| 大连有什么好吃的| pda是什么| 喝黑芝麻糊有什么好处| 霉菌是什么引起的| 戴字五行属什么| 什么情况会染上鼠疫| 切口憩室是什么意思| 左手麻木什么原因| 梅核气吃什么药好得快| 长公主是什么意思| tvb是什么| 胃疼吃什么消炎药| 查结核做什么检查| 手抖是什么病| 破处是什么意思| 1月19号是什么星座| 迷恋一个人说明什么| 包皮是什么样子的| 沉香木是什么树| 眼睛不舒服是什么原因引起的| 子宫肌瘤是什么原因导致的| 舌炎是什么症状| 做馒头用什么面粉好| 生日可以送什么礼物| 什么是化学| 午安是什么意思| 梦见老宅是什么意思| or发什么音| 六安瓜片是什么茶| 孩子晚上睡觉磨牙是什么原因| 孕妇感染弓形虫有什么症状| 为什么左手会发麻| 花雕酒是什么| 头疼想吐是什么原因引起的| 腋下疼痛挂什么科| 纳字五行属什么| 宫颈炎用什么药物治疗比较好| 内热是什么原因引起的| 柏树长什么样子| 爱哭的人是什么性格| 止鼾什么方法最有效| 海棠果什么时候成熟| 晚八点是什么时辰| 桥字五行属什么| 风湿病吃什么药| 青海有什么特产| 喉咙痛喝什么饮料| 肆无忌惮的意思是什么| 嗳气什么意思| 教师节贺卡上写什么| 肝肾阴虚吃什么药| 金刚钻是什么意思| 胃烧灼感是什么原因| 绿洲是什么意思| 怀孕一个月吃什么对宝宝发育好| 胰岛素有什么副作用| 刚刚什么地方地震了| mmf是什么药| 天天想睡觉没精神是什么原因| 人为什么要吃肉| 吃什么对头发好| 性张力是什么意思| 10.1什么星座| 什么螺不能吃| 2017年属什么生肖| 胆碱酯酶高是什么意思| 肌酐清除率是什么意思| 突然戒烟对身体有什么影响| 脚底出汗什么原因| 七月11日是什么星座| 吃万艾可有什么副作用| 狗肉不能和什么食物一起吃| phoenix是什么牌子| 为什么会梦到蛇| 4月4日是什么星座| 脚长水泡是什么原因| 为什么叫汉族| 崩大碗配什么煲汤最好| 下腹痛挂什么科| 明天是什么生肖| 哈伦裤配什么上衣好看| 前庭神经炎挂什么科| 软装是什么| 在什么前面用英语怎么说| 为什么南极比北极冷| 身份证x代表什么意思| 丙肝病毒抗体阴性是什么意思| 龙须菜是什么植物| 粉底液是干什么用的| 包馄饨用猪肉什么部位| 心火是什么原因引起的| 130是什么意思| 天生一对成伴侣是什么生肖| 马克杯是什么意思| 小娇妻是什么意思| 打哈欠为什么会传染| 走路腰疼是什么原因| 肝硬化吃什么水果好| 去医院要带什么| 土豆什么时候种植| 桉是什么意思| 什么时间运动减肥效果最好| 脱发缺少什么维生素| 云南小黄姜和普通姜有什么区别| 室内用什么隔墙最便宜| 耳朵红热是什么原因| 爱居兔女装是什么档次| 放屁特别多是什么原因| 吃什么增强记忆力| 照烧是什么意思| 肺看什么科室| 酵素什么牌子好| 御姐是什么意思| 什么人容易得焦虑症| 制作人是干什么的| 为什么抽烟就想拉屎| 什么是顶香人| 庸俗是什么意思| 肾气不固吃什么中成药| 曹操是什么时期的人| 小沙弥是什么意思| 早晨起来口苦什么原因| 睡觉流口水是什么情况| 梳头发有什么好处| 胎盘位置低有什么危险| 蹭蹭是什么意思| 害怕的反义词是什么| 防晒霜和防晒乳有什么区别| 7月30号什么星座| 解表药是什么意思| style什么意思| 孔子是什么圣人| 祖字五行属什么| 格局是什么| 妈妈生日送什么| 疴是什么意思| 葡萄籽有什么功效| 咳嗽吐黄痰是什么原因| 手指伸不直是什么原因| 什么叫私生饭| 残疾证有什么补贴| 肾功能不全是指什么| 12月14日什么星座| 鸽子配什么煲汤最好| 金碧辉煌是什么生肖| 黑白蛇是什么蛇| 月经量少发黑是什么原因| 条条框框是什么意思| trust是什么意思| 宝宝发烧手脚冰凉是什么原因| cl是什么单位| 外阴长水泡是什么原因| 湿气重喝什么| 阿尔兹海默症是什么病| 地中海贫血有什么影响| 狗狗感冒了是什么症状| 萎缩性鼻炎用什么药| 喝酒前吃什么不会醉| 乌云为什么是黑色的| hpv用什么药| 湖南省的简称是什么| 永垂不朽的垂是什么意思| usp是什么意思| 国家为什么要扫黄| 睡觉空调开什么模式| 小孩补铁吃什么| 鼻炎用什么药好| 扁桃体发炎吃什么消炎药| 肝血管瘤有什么症状| 喝桦树茸有什么好处| 草酸是干什么用的| 雅诗兰黛属于什么档次| blossom是什么意思| 执业药师什么时候报名| 眼镜轴向是什么意思| 肉桂跟桂皮有什么区别| 2023年属兔的是什么命| 喝茶对身体有什么好处| temp是什么文件夹| 什么样的人可以通灵| 口腔长期溃疡是什么原因引起的| 银梳子梳头有什么好处和坏处| 耳耵聍是什么东西| 吃什么药可以流产不用去医院| 丧偶什么意思| 为什么会缺钙| 高压和低压差值在什么范围正常| 微信限额是什么意思| 手脚抽筋是什么原因| 瓷娃娃什么意思| 和女生聊天聊什么| 手麻去医院挂什么科| 历法是什么意思| 人什么地灵| 36是什么罩杯| 什么是皮肤病| 夏天适合种什么蔬菜| sdh是什么意思| 白酒兑什么饮料最好喝| 胸闷气短什么原因| 性格什么意思| 指甲长得快是什么原因| 1967年出生属什么| 梦见手链断了是什么意思| 体检查什么| 白带黄绿是什么原因| 摩卡是什么意思| 兔子的尾巴像什么| 不声不响是什么意思| 梦见磕头下跪什么意思| 硬化症是什么病| 摩羯座男生喜欢什么样的女生| 近视和远视有什么区别| 外阴白斑用什么药最好| 手脚抽筋吃什么药最好| 梦见买衣服是什么预兆| 高职本科什么意思| 蚊香灰有什么作用| 角膜炎吃什么消炎药| 阴茎长水泡是什么原因| 晚上看见黄鼠狼有什么预兆| 什么茶减肥效果好| 血糖高可以吃什么| 13层楼房有什么说法吗| 香奶奶是什么牌子| 百度Ir al contenido

甘肃:继续实施三大贫困专项计划 助力农村高考学子

De Wikipedia, la enciclopedia libre
百度 今后3年,实现3000多万人脱贫,不是图一时摘帽,而是要稳定脱贫,重点就在深度贫困地区。

Esta es la versión actual de esta página, editada a las 15:19 6 jul 2025 por Ehespinosa (discusión · contribs.). La dirección URL es un enlace permanente a esta versión.

(difs.) ← Revisión anterior · Ver revisión actual (difs.) · Revisión siguiente → (difs.)

La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y a tres estructuras de control básicas: secuencia, selección (if y switch) e iteración (bucles for y while); asimismo, se considera innecesario y contraproducente el uso de la transferencia incondicional (GOTO); esta instrucción suele acabar generando el llamado código espagueti, mucho más difícil de seguir y de mantener, además de originar numerosos errores de programación.

Surgió en la década de 1960, particularmente del trabajo de Corrado B?hm y Giuseppe Jacopini,[1]? y un famoso escrito de 1968: ?La sentencia goto, considerada perjudicial?, de Edsger Dijkstra.[2]? Sus postulados se verían reforzados, a nivel teórico, por el teorema del programa estructurado y, a nivel práctico, por la aparición de lenguajes como ALGOL, dotado de estructuras de control consistentes y bien formadas.[3]?

Elementos

[editar]

Estructuras de control

[editar]

Siguiendo el teorema del programa estructurado, todos los programas se ven como compuestos de estructuras de control:

  • Sequence: declaraciones ordenadas o subrutinas ejecutadas en secuencia.
  • Selection: una o varias instrucciones se ejecutan dependiendo del estado del programa. Esto generalmente se expresa con la palabra clave como if..then..else..endif. La declaración condicional debe tener al menos una condición verdadera y cada condición debe tener un punto de salida como máximo.
  • Iteration: una instrucción o bloque se ejecuta hasta que el programa alcanza un cierto estado, o se han aplicado operaciones a cada elemento de una colección. Esto generalmente se expresa con palabras clave como while, repeat, for o do..until. A menudo, se recomienda que cada bucle solo tenga un punto de entrada (y en la programación estructural original, también solo un punto de salida, y algunos lenguajes lo imponen).
  • Recursion: una declaración se ejecuta llamándose repetidamente a sí misma hasta que se cumplen las condiciones de terminación. Si bien en la práctica son similares a los bucles iterativos, los bucles recursivos pueden ser más eficientes desde el punto de vista computacional y se implementan de manera diferente como una pila en cascada.
Representación gráfica de los tres patrones básicos (secuencia, selección y repetición) utilizando diagramas NS (azul) y diagramas de flujo (verde).

Subrutinas

[editar]

Subrutinas son las unidades a las que se puede llamar, como procedimientos, funciones, métodos o subprogramas. Se utilizan para permitir que una sola declaración haga referencia a una secuencia.

Bloques

[editar]

Los bloques se utilizan para permitir que grupos de declaraciones se traten como si fueran una sola declaración. Los lenguajes "estructurados en bloques" tienen una sintaxis para encerrar estructuras de alguna manera formal, como una declaración if entre paréntesis. if..fi como en ALGOL 68, o una sección de código entre corchetes BEGIN..END, como en PL/I y Pascal, sangría de espacio en blanco como en Python, o las llaves {...} de C y relacionados de muchos lenguajes posteriores.

Orígenes de la programación estructurada

[editar]

A finales de los a?os 1970 surgió una nueva forma de programar que no solamente permitía desarrollar programas fiables y eficientes, sino que además estos estaban escritos de manera que se facilitaba su comprensión en fases de mejora posteriores.

El teorema del programa estructurado, propuesto por B?hm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:

  • Secuencia.
  • Instrucción condicional.
  • Iteración (bucle de instrucciones) con condición inicial.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, estas pueden ser construidas mediante las tres básicas citadas.

Historia

[editar]

Fundamentación teórica

[editar]

El teorema del programa estructurado proporciona la base teórica de la programación estructurada. Se?ala que la combinación de las tres estructuras básicas, secuencia, selección e iteración, son suficientes para expresar cualquier función computable. Esta observación no se originó con el movimiento de la programación estructurada. Estas estructuras son suficientes para describir el ciclo de instrucción de una unidad central de procesamiento, así como el funcionamiento de una máquina de Turing. Por lo tanto, un procesador siempre está ejecutando un ?programa estructurado? en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los autores usualmente acreditan el resultado a un documento escrito en 1966 por B?hm y Jacopini, posiblemente porque Dijkstra había citado este escrito.[4]? El teorema del programa estructurado no responde a cómo escribir y analizar un programa estructurado de manera útil. Estos temas fueron abordados durante la década de 1960 y principio de los a?os 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoare y David Gries.

Debate

[editar]

El programador estadounidense P. J. Plauger (1944- ), uno de los primeros en adoptar la programación estructurada, describió su reacción con el teorema del programa estructurado:

Nosotros los conversos ondeamos esta interesante pizca de noticias bajo las narices de los recalcitrantes programadores de lenguaje ensamblador que mantuvieron trotando adelante retorcidos bits de lógica y diciendo, 'Te apuesto que no puedes estructurar esto'. Ni la prueba por B?hm y Jacopini, ni nuestros repetidos éxitos en escribir código estructurado, los llevaron un día antes de lo que estaban listos para convencerse.[5]?

Donald Knuth aceptó el principio de que los programas deben adaptarse con asertividad, pero no estaba de acuerdo (y aún está en desacuerdo)[cita requerida] con la supresión de la sentencia GOTO. En su escrito de 1974 ?Programación estructurada con sentencias Goto?, dio ejemplos donde creía que un salto directo conduce a código más claro y más eficiente sin sacrificar demostratividad. Knuth propuso una restricción estructural más flexible: debe ser posible establecer un diagrama de flujo del programa con todas las bifurcaciones hacia adelante a la izquierda, todas las bifurcaciones hacia atrás a la derecha, y sin bifurcaciones que se crucen entre sí. Muchos de los expertos en teoría de grafos y compiladores han abogado por permitir solo grafos de flujo reducible[?quién?][?cuándo?].

Los teóricos de la programación estructurada se ganaron un aliado importante en la década de 1970 después de que el investigador de IBM Harlan Mills aplicara su interpretación de la teoría de la programación estructurada para el desarrollo de un sistema de indexación para el archivo de investigación del New York Times. El proyecto fue un gran éxito de la ingeniería, y los directivos de otras empresas lo citaron en apoyo de la adopción de la programación estructurada, aunque Dijkstra criticó las maneras en que la interpretación de Mills difería de la obra publicada.[6]?

Habría que esperar a 1987 para que la cuestión de la programación estructurada llamara la atención de una revista de ciencia de la computación. Frank Rubin lo hizo en ese a?o, con el escrito: ??“La sentencia GOTO considerada da?ina” se considera da?ina??.[7]? A este le siguieron numerosas objeciones, como una respuesta del propio Dijkstra que criticaba duramente a Rubin y las concesiones que otros autores hicieron cuando le respondieron.

Resultado

[editar]

A finales del siglo XX, casi todos los científicos están convencidos de que es útil aprender y aplicar los conceptos de programación estructurada. Los lenguajes de programación de alto nivel que originalmente carecían de estructuras de programación, como FORTRAN, COBOL y BASIC, ahora las tienen.

Ventajas de la programación estructurada

[editar]

Entre las ventajas de la programación estructurada sobre el modelo anterior (hoy llamado despectivamente código espagueti), cabe citar las siguientes:

  • Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de tener que rastrear saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica interna.
  • La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.
  • Se optimiza el esfuerzo en las fases de pruebas y depuración. El seguimiento de los fallos o errores del programa (debugging), y con él su detección y corrección, se facilita enormemente.
  • Se reducen los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.
  • Los programas son más sencillos y más rápidos de confeccionar.
  • Se incrementa el rendimiento de los programadores.

Lenguajes de programación estructurada

[editar]

Si bien es posible desarrollar la programación estructurada en cualquier lenguaje de programación, resulta más idóneo un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen ALGOL, Pascal, PL/I y Ada, pero la mayoría de los nuevos lenguajes de programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces, deliberadamente, omiten características[8]? en un esfuerzo para hacer más difícil la programación no estructurada.

Nuevos paradigmas

[editar]

Con posterioridad a la programación estructurada se han creado nuevos paradigmas tales como la programación modular, la programación orientada a objetos, la programación por capas y otras, así como nuevos entornos de programación que facilitan la programación de grandes aplicaciones y sistemas.

Desviaciones habituales

[editar]

Aunque goto ha sido sustituido en gran medida por las construcciones estructuradas de selección (if/then/else) y repetición (while y for), pocos lenguajes son puramente estructurados. La desviación más común, encontrada en muchos lenguajes, es el uso de una sentencia return para la salida temprana de una subrutina. Esto resulta en múltiples puntos de salida, en lugar del único punto de salida requerido por la programación estructurada. Hay otras construcciones para manejar casos que son incómodos en la programación puramente estructurada.

Salida temprana

[editar]

La desviación más común de la programación estructurada es la salida temprana de una función o bucle. A nivel de funciones, esto es una declaración de return. A nivel de bucles, esto es una declaración de break (terminar el bucle) o una declaración de continue (terminar la iteración actual y proceder con la siguiente). En la programación estructurada, estos se pueden replicar a?adiendo ramas o pruebas adicionales, pero para retornos desde código anidado, esto puede agregar una complejidad significativa. C es un ejemplo temprano y prominente de estos constructos. Algunos lenguajes más nuevos también tienen ?breaks etiquetados?, que permiten salir de más que solo el bucle más interno. Las excepciones también permiten la salida temprana, pero tienen consecuencias adicionales, y por lo tanto se tratan a continuación.

Las salidas múltiples pueden surgir por una variedad de razones, la mayoría de las veces porque la subrutina no tiene más trabajo que hacer (si devuelve un valor, ha completado el cálculo), o se ha encontrado con circunstancias ?excepcionales? que le impiden continuar, por lo que necesita un manejo de excepciones.

El problema más común en la salida anticipada es que las sentencias de limpieza o finales no se ejecutan - por ejemplo, la memoria asignada no se desasigna, o los archivos abiertos no se cierran, causando fugas de memorias o fugas de recursos. Esto debe hacerse en cada lugar de retorno. Esto debe hacerse en cada sitio de retorno, lo que es frágil y puede dar lugar fácilmente a errores. Por ejemplo, en un desarrollo posterior, una sentencia return podría ser pasada por alto por un desarrollador, y una acción que debería realizarse al final de una subrutina (por ejemplo, una sentencia trace) podría no realizarse en todos los casos. Los lenguajes sin sentencia return, como Pascal estándar y Seed7, no tienen este problema.

La mayoría de los lenguajes modernos proporcionan soporte a nivel de lenguaje para prevenir tales fugas;[9]? consulta la discusión detallada en gestión de recursos. Esto se hace comúnmente a través de la protección de desanudado, que asegura que cierto código se ejecute garantizado al salir de un bloque; esta es una alternativa estructurada a tener un bloque de limpieza y un goto. Esto se conoce más frecuentemente como try...finally, y se considera parte de manejadores de excepciones. En el caso de múltiples declaraciones de return, introducir try...finally sin excepciones puede parecer extra?o. Existen varias técnicas para encapsular la gestión de recursos. Un enfoque alternativo, encontrado principalmente en C++, es Resource Acquisition Is Initialization, que utiliza el desanudado normal de la pila (desasignación de variables) al salir de la función para llamar a destructores en variables locales y desasignar recursos.

Kent Beck, Martin Fowler y coautores han argumentado en sus libros sobre refactorización que los condicionales anidados pueden ser más difíciles de entender que un cierto tipo de estructura más plana utilizando múltiples salidas predicadas por cláusulas de guardia. Su libro de 2009 establece rotundamente que "un punto de salida realmente no es una regla útil. La claridad es el principio clave: si el método es más claro con un punto de salida, utiliza un punto de salida; de lo contrario, no lo hagas". Ofrecen una solución tipo "recetario" para transformar una función que consiste solo en condicionales anidados en una secuencia de declaraciones de retorno (o lanzamiento) protegidas, seguida de un bloque sin protección, que está destinado a contener el código para el caso común, mientras que las declaraciones protegidas deben tratar con los casos menos comunes (o con errores).[10]? Herb Sutter y Andrei Alexandrescu también argumentan en su libro de consejos de C++ de 2004 que el punto de salida único es un requisito obsoleto.[11]?

En su libro de texto de 2004, David Watt escribe que "los flujos de control de entrada única y múltiples salidas son a menudo deseables". Usando la noción del marco de Tennent de secuenciador, Watt describe uniformemente los constructos de flujo de control encontrados en los lenguajes de programación contemporáneos e intenta explicar por qué ciertos tipos de secuenciadores son preferibles a otros en el contexto de flujos de control de múltiples salidas. Watt escribe que los gotos sin restricciones (secuenciadores de salto) son malos porque el destino del salto no es autoexplicativo para el lector de un programa hasta que el lector encuentra y examina la etiqueta o dirección real que es el objetivo del salto. En contraste, Watt argumenta que la intención conceptual de un secuenciador de retorno es clara desde su propio contexto, sin necesidad de examinar su destino. Watt escribe que una clase de secuenciadores conocidos como secuenciadores de escape, definidos como "secuenciador que termina la ejecución de un comando o procedimiento que lo envuelve textualmente", abarca tanto los saltos de bucles (incluyendo saltos de múltiples niveles) como las declaraciones de retorno. Watt también se?ala que, aunque los secuenciadores de salto (gotoss) han sido algo restringidos en lenguajes como C, donde el objetivo debe estar dentro del bloque local o de un bloque exterior que lo envuelva, esa restricción por sí sola no es suficiente para hacer que la intención de los gotos en C sea autodescriptiva y, por lo tanto, aún pueden producir "código espagueti". Watt también examina cómo los secuenciadores de excepciones difieren de los secuenciadores de escape y de salto; esto se explica en la siguiente sección de este artículo.[12]?

En contraste con lo anterior, Bertrand Meyer escribió en su libro de texto de 2009 que instrucciones como break y continue "son solo el viejo goto disfrazado" y aconsejó enérgicamente en contra de su uso.[13]?

Referencias

[editar]
  1. B?hm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966, doi=10.1145/355592.365646
  2. Edsger Dijkstra (marzo de 1968). ?Go To Statement Considered Harmful?. Communications of the ACM (PDF) 11 (3): 147-148. doi:10.1145/362929.362947. ?"The unbridled use of the go to statement has as an immediate consequence that it becomes terribly hard to find a meaningful set of coordinates in which to describe the process progress. ... The go to statement as it stands is just too primitive, it is too much an invitation to make a mess of one's program". (El uso desenfrenado de la instrucción go to tiene como consecuencia inmediata que se vuelve terriblemente difícil encontrar un conjunto significativo de coordenadas para describir el progreso del proceso. ... La instrucción go to tal como está es simplemente demasiado primitiva, es una invitación demasiado grande a arruinar el propio programa.)?. 
  3. Clark, Leslie B. Wilson, Robert G.; Robert, Clark (2000). Comparative programming languages (3rd edición). Harlow, England: Addison-Wesley. p. 20. ISBN 9780201710120. Archivado desde el original el 26 de noviembre de 2015. Consultado el 25 de noviembre de 2015. 
  4. Dijkstra, 1968.
  5. P. J. Plauger (1993). Programming on Purpose (en inglés). PTR Prentice Hall. p. 20. ISBN 978-013-721-374-0. 
  6. In EWD1308, ?What led to "Notes on Structured Programming"?. , dated 10 June 2001, Dijkstra writes, "Apparently, IBM did not like the popularity of my text; it stole the term "Structured Programming" and under its auspices Harlan D. Mills trivialized the original concept to the abolishment of the goto statement."
  7. Frank Rubin (March 1987). ?"GOTO Considered Harmful" Considered Harmful?. Communications of the ACM 30 (3): 195-196. S2CID 6853038. doi:10.1145/214748.315722. Archivado desde el original el 20 de marzo de 2009. 
  8. GOTO for example
  9. Elder, Matt; Jackson, Steve; Liblit, Ben (octubre 2008), Code Sandwiches, Universidad de Wisconsin–Madison, 1647 .
  10. Jay Fields; Shane Harvie; Martin Fowler; Kent Beck (2009). Refactoring: Ruby Edition. Pearson Education. pp. 274-279. ISBN 978-0-321-60350-0. 
  11. Herb Sutter; Andrei Alexandrescu (2004). C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Pearson Education. ISBN 978-0-13-265442-5. ?Ejemplo 4: Entrada única, salida única ("SESE"). Históricamente, algunos estándares de codificación han requerido que cada función tenga exactamente una salida, es decir, una declaración de retorno. Tal requisito es obsoleto en lenguajes que soportan excepciones y destructores, donde las funciones típicamente tienen numerosas salidas implícitas.? 
  12. Watt y Findlay, 2004, pp. 215–221.
  13. Bertrand Meyer (2009). Touch of Class: Learning to Program Well with Objects and Contracts. Springer Science & Business Media. p. 189. ISBN 978-3-540-92144-8. 

Bibliografía

[editar]

Véase también

[editar]

Enlaces externos

[editar]
什么叫肿瘤 布朗是什么水果 甘草长什么样子图片 胃气胃胀吃什么药最好 凌晨12点是什么时辰
蒌蒿是什么 grace什么意思 黄金微针是什么 什么时候说什么话 什么是封闭针
梨花代表什么生肖 孤单是什么意思 向日葵是什么意思 骨折是什么症状 处女座女生和什么星座男生最配
阿僧只劫是什么意思 肩膀酸痛是什么原因 为什么会被限制高消费 天干指的是什么 7月15号是什么星座
霉菌性阴道炎有什么症状zhiyanzhang.com 吐黄痰是什么原因hcv7jop7ns1r.cn 妲己属什么生肖hcv8jop8ns7r.cn 二人世界是什么意思helloaicloud.com 标本是什么意思hcv9jop4ns9r.cn
cab是什么意思hcv8jop7ns4r.cn 候和侯有什么区别hcv9jop0ns4r.cn 汉堡是什么意思hcv8jop4ns9r.cn 什么是肿瘤标志物hcv8jop6ns0r.cn 引力的本质是什么hcv8jop8ns9r.cn
脚上有青筋是什么原因hcv8jop1ns6r.cn 什么花有毒hcv8jop8ns4r.cn 圣罗兰属于什么档次hcv8jop3ns3r.cn 勰读什么hcv7jop9ns5r.cn 喝冰美式有什么好处hcv9jop0ns8r.cn
塞是什么意思hcv9jop6ns9r.cn mmf是什么药hcv7jop6ns3r.cn 是的是什么意思hcv8jop3ns1r.cn 穷的生肖指什么生肖hcv8jop1ns7r.cn 胎儿胆囊偏小有什么影响hcv8jop9ns4r.cn
百度