Hay suficiente hardware para pokear. ::)
Bueno en la universidad y en la mayoria de los cursos de programacion te decian que no hay que usar goto, pero el tema no esta en si usarlo o no, la cosa es no pensar con goto, sino tomarlo como una herramienta. Programacion estructurada se puede hacer hasta en assembler, uno piensa las cosas, en pseudocodigo o lo que a uno le sea mas comodo, y despues ve como implementarlo, se puede pensar estructuras como while...wend, repeat...until, y cuando llega la hora de implementarlo se usa lo que se tenga a mano, en algunas maquinas esos comandos existen, en otras habra que implementarlo con goto, en algunos lenguajes como assembler directamente no existen, pero el programa en definitiva seguiria siendo estructurado porque nacio asi. Lo importante es no pensar el programa usando goto para salir de bucles o subrutinas, tratar de que tengan puntos de salida bien definidos, separar la idea conceptual del programa de la implementacion final. Ahora, no siempre es posible una programacion ordenada, porque eso atenta contra la optimizacion, se genera mas codigo que da claridad al programa pero es superfluo desde el punto de vista del usuario, ya que menos lineas de codigo pueden hacer lo mismo. En algunas maquinas, tener mas lineas de codigo que las necesarias no solo resta la poca memoria disponible, sino que hace la ejecucion mas lenta, pero siempre se puede encontrar un punto medio aceptable entre claridad y optimizacion.
Self Proclaimed Commodore Guru
16 años atrás
Self Proclaimed Commodore Guru
A mi el GOTO nunca me quedo pegado, será porque usé mucho el Simon's BASIC que tiene procedimientos y bucles estructurados WHILE y REPEAT.
Lo que sí me costo fue el organizar las variables y no llenar de variables globales.
Esta bueno que te enseñen Pascal primero en la Universidad, es mucho más sencillo de leer que C, y una vez aprendido la transición a C es rapidisima. Aún así pienso que una base de BASIC es muy util, porque a pesar de lo limitado que es, enseña otras tecnicas de programación que no son recomendables en los lenguajes estructurados.
Casualmente yo ahora (en este instante) estoy escribiendo un interprete de basic chico, con la idea de meterlo en un embeded con un LCD de 6x20 y teclado de PC, o tal vez en un 6502, veremos como va esto.
Yo escribo en C muy optimizado, lo pruebo en modo consola y despues me fijo si lo paso a Assembler de 6502 y lo pruebo con el emulador de C64.
Ya se que hay ya fuentes de esto, pero lo quiero escribir yo. Es muy lindo todo lo de compiladores, es un tema apasionante, me encanta este programa, a medida que lo vas escribiendo, te vas metiendo en detalles que sino te pasan desapercividos, de hecho ahora se mas del Basic de C64 que antes, al tener que tomar una desicion y ver como lo hace la Commodore.
Escribi hace unos años un basic para DOS, pero era mas tipo quickbasic, esto es mas chico, tipo el de la commodore. De hecho la idea era hacerlo como el de la C64, pero ya me aleje en unas cuantas desiciones, por ejemplo cuando ingresas la linea ya ahi lo compila en pseudocodigo y lo guarda asi (Te detecta errorres de sintaxis en el instante), y el de la C64 solo te interpreta las intrucciones (por ejemplo en vez de guardar "POKE" te guarda, ponele, 12), pero todo lo demas es ascii, hasta los numeros!!!!!!
Una vez escribi un programa en C todo con goto nada mas, una sola funcion, era para la facultad, que habia que hacer en assembler del S/360, un juego de 4 en linea, una especie de TATETI pero de a 3 y que se apilan las fichas en 4 columnas, no las pones en cualquier lugar del tablero, y tenias que poder jugar contra la maquina.
Para hacerlo facil lo escribi en C todo lindo, y una vez andando, le reemplace los llamador de rutinas y bloques if, while, for,... por goto (o sea, dentro del if solo habia un goto). Lo probe asi, y le reemplace las variables por variables AX,BX,... como los registros, y cuando andubo con eso (Seguia siendo C), lo pase linea por linea a assembler. El compilador humano!!!
Saludos
MARCOS