流鼻血是什么病| 什么是g大调| 肴肉是什么肉| 苦瓜对肝脏有什么好处| 黄疸高对婴儿有什么影响| 韭菜不能和什么一起吃| 助产学出来是干什么的| 1846什么意思| 制加手念什么| 会厌炎吃什么药| 补骨头吃什么最好| 辛辣指的是什么| 月经每个月都推迟是什么原因| 浅表性胃炎用什么药| 为什么头皮会疼| 角弓反张是什么意思| 什么花花| 端午节晚上吃什么| 关税是什么意思| 韭菜花炒什么好吃| 三班两倒是什么意思| 牛黄是什么东西| 胰管扩张是什么意思| 中元节注意什么| aigner是什么牌子| 全腹部ct平扫主要检查什么| 脚后筋疼是什么原因引起的| 女性分泌物少是什么原因| 订婚需要准备什么| 闲鱼转卖什么意思| 野馄饨是什么意思| 兰桂齐芳是什么意思| michaelkors是什么牌子| 梦到开车是什么意思| 什么是网约车| 氟西汀什么意思| 献完血应该注意什么| 免疫比浊法是什么意思| 姓杨的女孩子取什么名字| 什么程度算节食减肥| 孩子半夜咳嗽是什么原因| egfr是什么| 冬至吃什么| 道德绑架是什么意思| 亚玛病是什么病| 六十六大寿有什么讲究| 心慌气短胸闷吃什么药| 脾肾两虚吃什么中成药最好| 中国第一个不平等条约是什么| 大肠杆菌是什么| 前列腺液是什么| 什么饮料不含糖| 伸筋草长什么样子| 买手机上什么网| 晚上喝蜂蜜水有什么好处| 指骨属于什么骨| 石油是什么意思| 慢性胃炎吃什么药好| 什么是省控线| 楼台是什么意思| 什么是单反相机| 用盐刷牙有什么好处和坏处| 梦见已故老人是什么预兆| 活检和穿刺有什么区别| 老母鸡煲汤放什么食材补气补血| 激素药是什么意思| 左心室强光点是什么意思| 音序是什么| 心悸什么意思| 聊胜于无的聊是什么意思| 预防水痘吃什么药| 减肥早餐吃什么最好| 大名鼎鼎的鼎是什么意思| 综合体是什么意思| 淋巴在什么部位| 梦见和婆婆吵架是什么意思| 8月11日是什么星座| 女人十个簸箕是什么命| adhd是什么病| 热火朝天是什么生肖| 甘肃天水有什么好玩的地方| 什么是七七事变| 云南有什么好吃的| a1代表什么意思| 牙发黑是什么原因怎么办| 甲状腺结节对身体有什么影响| 谭震林是什么军衔| 上面一个日下面一个立是什么字| 红薯叶不能和什么一起吃| 荷尔蒙是什么意思| 查血型挂什么科| 什么是百慕大三角| 什么是高筋面粉| 黄喉是什么| 什么叫石女| 海蜇是什么| 豆工念什么| 陈皮和橘子皮有什么区别| 桃花眼是什么意思| 老年人生日送什么礼物| shiraz是什么名字红酒| 意念是什么意思| 搪塞什么意思| 七什么什么什么成语| 突厥是现在的什么地方| 红细胞数目偏高是什么意思| 十月二十八是什么星座| 音什么笑什么成语| 懒羊羊的什么| 所不欲勿施于人是什么意思| 肝功能八项检查什么| 经常喝红茶有什么好处和坏处吗| 豁达是什么意思| 磨牙齿有什么方法可以治| 世界上最大的鸟是什么鸟| 打扮的意思是什么| 自负是什么意思| 九天是什么意思| 有什么好用的vpn| 白加黑是什么颜色| 贪嗔痴是什么意思| 脚气是什么菌感染| it是什么牌子的衣服| 奶奶的哥哥叫什么| 地球属于什么星| 妈妈的外婆叫什么| 输卵管发炎有什么症状表现| 香水edp什么意思| 怀孕生化是什么意思| 什么嫩芽| 02年的属什么| 豆浆和什么搭配最好| 什么是处方药| 梦见别人盖房子是什么预兆| 家有一老如有一宝是什么意思| 吃中药能吃什么水果| 1931年属什么生肖| 灵芝孢子粉有什么用| 子宫内膜息肉样增生是什么意思| 什么是行政职务| 绿豆和什么相克中毒| 12月2日什么星座| 胆汁酸高是什么原因| swan什么意思| 萌是什么意思| 移民瑞士需要什么条件| 婵字五行属什么| 高血压吃什么降压药| 补脑吃什么| 睡觉食管反流什么原因| od值是什么意思| 什么是规律| 为什么受伤总是我| 打灰是什么意思| 本加一笔是什么字| 大姨妈很多血块是什么原因| 蒲公英什么功效| 健脾养胃喝什么好| 花花世界不必当真是什么歌| 化疗后吃什么补身体| 梦见恐龙是什么预兆| 血虚是什么意思| 舌苔白厚吃什么药| hbsab是什么意思| 用维生素e擦脸有什么好处和坏处| 类风湿忌吃什么| 背上长白斑是什么病的症状| 贾珍和贾政是什么关系| 化妆棉是干什么用的| 犹太人割礼是什么意思| 眼角有眼屎是什么原因| 笑气是什么东西| 平产是什么意思| 处暑吃什么| 高尿酸血症吃什么药| 数字3五行属什么| 什么是内分泌| 手麻是什么引起的| 青蛙吃什么东西| 小孩睡觉磨牙是什么原因引起的| 鸡蛋与什么食物相克| 孕妇喝纯牛奶对胎儿有什么好处| 山加乘念什么| 耳朵红热是什么原因| 吃维生素b12有什么好处和副作用| 气管疼什么原因引起的| 厉兵秣马是什么意思| 满日是什么意思| 成因是什么意思| 草莓舌吃什么药| 什么是直系亲属| 参商是什么意思| 姑姑的孙子叫我什么| 哺乳期可以喝什么饮料| 舌头裂缝是什么原因| omega什么意思| 上呼吸道感染吃什么| 十一月七号是什么星座| 成年人改名字需要什么手续| 青云志是什么意思| 敬请是什么意思| 茶麸是什么东西| 什么古迹| 松针是什么| 消炎药吃多了有什么副作用| 双非是什么| 脖子粗大是什么病的症状| 蚊子不喜欢什么味道| 老公生日送什么礼物| 6月底是什么星座| 水的ph值是什么意思| 脚为什么脱皮| 放炮是什么意思| 降血脂吃什么药| 梦见出国了是什么意思| 扁桃体结石长什么样| 硫酸亚铁是什么东西| 肾功能不全是什么意思| 吃李子有什么好处和坏处| 肝功能异常是什么意思| 调理是什么意思| 朱砂是什么颜色| 今天是什么生肖日| 梦见和邻居吵架什么预兆| 腰椎间盘突出压迫神经吃什么药| 鹿鞭泡酒有什么功效| 3月20日什么星座| 掉头发缺少什么维生素| 睡觉脚麻是什么原因| 经常喝红茶有什么好处和坏处吗| 什么眉头| 结节是什么病| 一个火一个同念什么| 甲钴胺是什么药| 膀胱炎挂什么科| 胰腺炎吃什么药| 尿后余沥是什么意思| 脾虚湿盛吃什么中成药| 湿气是什么意思| 什么是隐形矫正牙齿| 淀粉是什么| 梦到离婚是什么征兆| 精索炎吃什么药最好| 先兆临产是什么意思| 阳历6月21日是什么星座| 膀胱充盈欠佳是什么意思| 尿酸偏高是什么原因| 乳腺增生结节吃什么药效果好| 虚汗是什么症状| 什么是奶昔| 羊鞭是什么部位| 天的反义词是什么| 为什么会得荨麻疹呢| 钙不能和什么一起吃| 脂溢性皮炎用什么药| 往返是什么意思| 孩子肠胃炎吃什么药| 梦见做春梦是什么意思| 格桑花什么时候开花| 圆脸适合什么刘海| 肛周脓肿吃什么药| 今天开什么奖| 感冒喉咙痒吃什么药| 水痘疤痕用什么药膏| 百度

相比林芝的十里桃花,我更喜欢墨脱的遍山杜鹃

paradigma de programación
百度   在指数走低之际,不少股票遭遇错杀,一些上市公司纷纷澄清此次事件的影响。

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
命根子是什么生肖 human什么意思 女生额头长痘痘是什么原因 办理结婚证需要什么材料 突然发胖要警惕什么病
贻字五行属什么 扳机指是什么原因造成的 足石念什么 心理健康是什么 势利是什么意思
肿瘤标志物cA724高说明什么 lac是什么意思 陈五行属什么 无意间是什么意思 西红柿不能跟什么一起吃
舌苔白腻是什么原因 sod是什么意思 敛财是什么意思 枸杞泡水喝有什么作用 地球属于什么星
不小心怀孕了吃什么药可以流掉imcecn.com 颈椎疼挂什么科室hcv9jop1ns2r.cn cpv是什么病毒hcv7jop5ns0r.cn 7月份什么星座hcv9jop2ns4r.cn 为什么月经量少hcv7jop4ns8r.cn
女性掉发严重是什么原因hcv7jop9ns7r.cn 外阴长什么样hcv7jop6ns0r.cn 为什么睡觉会张嘴hcv8jop2ns2r.cn 粽叶是什么植物hcv8jop6ns7r.cn 出其不意下一句是什么hcv9jop2ns2r.cn
什么是腹式呼吸bysq.com 25羟维生素d测定是什么hcv8jop4ns9r.cn 三百多分能上什么大学hcv9jop4ns1r.cn 灵魂是什么hcv8jop5ns9r.cn 活检是什么意思hcv8jop7ns0r.cn
经常拉肚子什么原因hcv8jop0ns9r.cn 胸闷气短吃什么药疗效比较好hcv8jop2ns0r.cn o型血为什么叫熊猫血hcv8jop7ns9r.cn 偈语是什么意思hcv9jop6ns1r.cn 健身hit什么意思hcv9jop1ns6r.cn
百度