visual traductor significado ropa programacion lenguaje informatica ejemplos descargar programming-languages basic

programming-languages - traductor - lenguaje de programacion basic ejemplos



¿Por qué BASIC tenía líneas numeradas? (15)

Algunos editores solo tenían un modo de "sobrescritura" y ningún modo de "inserción". Esto hizo que la edición del código existente fuera extremadamente dolorosa. Al agregar esa función de número de línea, sin embargo, puede parchar el código existente desde cualquier lugar dentro del archivo:

100 PRINT "Broken Code" 200 PRINT "Foobar" ... 101 patch the broken code 102 patch more broken code

Debido a que los números de línea no tenían que ser ordenados dentro del archivo.

Posible duplicado:
¿Por qué nos molestamos con los números de línea en absoluto?

Tengo curiosidad acerca de por qué las primeras versiones del lenguaje de programación BASIC tenían numeración de líneas como en:

42 PRINT "Hello world!"

¿Los editores de texto en aquel entonces no tenían numeración de líneas?

EDIT: Sí, sé que se utilizan para GOTOs, pero ¿por qué? Me refiero a tener etiquetas era demasiado costoso computacionalmente?


Como han señalado otros, estos números de línea se utilizaron como parte de las subrutinas.

Por supuesto, hay una razón por la que esto ya no se hace. Imagínese si dice GOTO 20 en la línea 10, y luego se da cuenta de que necesita escribir 10 líneas más de código después de la línea 10. De repente, está rompiendo contra 20, por lo que debe cambiar su subrutina más lejos ( números más altos) y cambie su valor GOTO, o necesita escribir otra subrutina que salte más lejos en el código.

En otras palabras, se convirtió en una pesadilla del verdadero código de espagueti y no es divertido de mantener.


En BASIC, los números de línea indican secuencia.

Además, muchos editores antiguos no eran para archivos, sino simplemente líneas ("editores de líneas", por ejemplo , ed, el editor estándar ). Al numerarlos de esta manera, sabías en qué línea estabas trabajando.


En el día en que todos los idiomas tenían números de secuencia, todo estaba en tarjetas perforadas. Había una línea por tarjeta. Barajas de cartas que componen su programa.

Cuando dejaste caer las cartas, las colocaste en un clasificador de cartas que usaba esos números de secuencia.

Y, por supuesto, fueron referenciados por construcciones de flujo de control.


En la C64, ni siquiera había un editor real (al menos incorporado). Para editar una parte del programa, haría algo como LIST 100-200, y luego solo podría editar las líneas que se mostraban actualmente en la pantalla (¡sin desplazarse hacia arriba!)


Eran etiquetas para las declaraciones, de modo que usted podría GOTO el número de línea. El número de las declaraciones no necesariamente tenía que coincidir con los números de línea físicos en el archivo.


IIRC, los números de línea se usaron principalmente como etiquetas para las declaraciones GOTO y GOSUB, ya que en algunos (¿la mayoría?) De BASIC no había manera de etiquetar una sección de código.


La numeración de líneas BÁSICA original era en realidad una parte integral del lenguaje y se usaba para el flujo de control.

Los comandos GOTO y GOSUB tomarán la línea y la usarán para controlar el flujo. Esto era común entonces (aunque ahora está desanimado).


Los números de línea eran una PARTE del lenguaje, en algunos MUY tempranos, incluso el sistema operativo era solo estas líneas simples. TODO lo que tenías era una línea a la vez para manipular. Intente escribir un sistema de contabilidad usando archivos de programa 1-4k y segmentarlo por tamaño para hacer las cosas. Para editar usaste los números de línea para decirte lo que estabas editando. Entonces, si entraste como:

10 PRINT "howdy" 20 GOTO 10 10 PRINT "WOOPS" 15 PRINT "MORE WOOPS" 20 RUN

USTED CONSEGUIRÍA

WOOPS MORE WHOOPS

El 20 en blanco eliminaría efectivamente esa línea.


Los números de línea se utilizaron en el flujo de control. No había subrutinas con nombre. Tuvo que usar GOSUB 60 , por ejemplo, para llamar a la subrutina a partir de la línea 60.

En su actualización, no todos los idiomas tenían etiquetas, pero todos los idiomas tenían números de línea al mismo tiempo. En un momento, todo era tarjetas perforadas. BASIC fue uno de los primeros lenguajes interactivos, donde realmente podría escribir algo y recibir una respuesta de inmediato. Los números de línea seguían siendo la tecnología actual.

Las etiquetas son un gasto extra. Debe realizar un seguimiento de la correlación entre la etiqueta simbólica y el código o los datos a los que hace referencia. Pero si cada línea tiene un número de línea (y si todas las declaraciones de flujo de control de transferencia se refieren siempre al comienzo de una línea), entonces no necesita una tabla de símbolos separada.

También tenga en cuenta que los intérpretes BÁSICOS originales no necesitaban una tabla de símbolos para las variables: había 26 variables llamadas AZ. Algunos eran sofisticados y tenían An-Zn. Algunos se volvieron muy sofisticados y agregaron una distinción entre cadena, entero y punto flotante agregando "$" o "%" después de la variable. Pero no se requería tabla de símbolos.


Muchos microcomputadores tenían un intérprete BÁSICO en la ROM que comenzaría con el arranque. El problema era que no había ningún editor de texto o sistema de archivos para hablar. Tenías un aviso interactivo para hacer todo lo posible. Si quería insertar una línea de código, simplemente la escribió, comenzando con el número de línea. Lo insertaría en el lugar correcto en su código. p.ej:

>10 print "hello" >30 goto 10 >20 print "world" >list 10 PRINT "hello" 20 PRINT "world" 30 GOTO 10 >

(En ese ejemplo> es el prompt BASIC)

Si desea borrar una línea, escriba algo como ERASE 20 . Algunos sistemas realmente sofisticados le dieron un editor de línea (es decir, EDIT 10 ) Y si no planificó sus números de línea y se agotó (¿cómo inserto una línea entre 10 y 11?), Algunos sistemas le dieron un comando RENUM que volvería a numerar su código (y ajuste GOSUBs y GOSUBs apropiadamente).

¡Tiempos divertidos!


Se ingresó en la línea de comandos en muchos casos (o fue, en mi antiguo Commodore 64), por lo que es posible que no siempre haya habido un editor de texto, o si lo hubo, fue bastante básico.

Además, tendría que hacer GOTO y similares, así como insertar líneas entre otros.

es decir:

10 PRINT "HELLO" 20 GOTO 10 15 PRINT " WORLD"

A dónde iría en la lógica 10 15 20.


Se utilizaron como etiquetas para GOTO y GOSUB.

Me gusta esto:

10 PRINT "HELLO WORLD" 20 GOTO 10

No hubo etiquetas con nombre en algunas versiones básicas de BASIC

También se requerían si quería insertar una línea entre 2 líneas de código existentes, porque en los primeros días no tenía editores de texto completo. Todo tenía que ser escrito en el intérprete "interactivo".

Así que si escribiste:

15 PRINT "AND THE UNIVERSE"

El programa se convertiría en:

10 PRINT "HELLO WORLD" 15 PRINT "AND THE UNIVERSE" 20 GOTO 10

Cuando se quedaron sin números de línea, podría ejecutar una herramienta de "renumeración" para renumerar todas las líneas en su programa, pero en los primeros días de la Commodore 64 y otras computadoras domésticas, ni siquiera teníamos eso, así que Tengo que volver a numerar manualmente. Es por eso que tuvo que dejar espacios en blanco de 10 o más en los números de línea, por lo que fácilmente podría agregar líneas entre ellas.

Si desea probar el intérprete Commodore 64, consulte este emulador de C64 escrito en Flash: http://codeazur.com.br/stuff/fc64_final/ (no requiere instalación)


También fueron utilizados por el editor, es decir, usted dijo:

edit 100

para editar la linea 100.


Un simple google revela lo que wikipedia tiene que decir al respecto :

Los números de línea eran un elemento requerido de sintaxis en algunos lenguajes de programación más antiguos, como GW-BASIC. [2] La razón principal de esto es que la mayoría de los sistemas operativos en ese momento carecían de editores de texto interactivos; dado que la interfaz del programador generalmente se limitaba a un editor de línea, los números de línea proporcionaban un mecanismo por el cual las líneas específicas del código fuente podían ser referenciadas para su edición, y el programador podía insertar una nueva línea en un punto específico. Los números de línea también proporcionaron un medio conveniente para distinguir entre el código que se ingresará en el programa y los comandos que se ejecutarán inmediatamente cuando el usuario los ingrese (que no tienen números de línea).