Pregunta

Cuando escribes algo en BASIC, debes usar números de línea.Como:

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10

Pero me pregunto:¿A quién se le ocurrió la idea de utilizar números de línea?¡Es una gran molestia y dejó un gran "eco" en el mundo en desarrollo (nunca mejor dicho)!

¿Fue útil?

Solución

La idea entonces fue que fácilmente se podría añadir el código de todas partes en su programa utilizando el número de línea correspondiente. Es por eso que todo el mundo usa los números de línea 10, 20, 30 .. lo que hay espacio restante:

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10
25 PRINT "HOME"

En las primeras interfaces básica era disponible para, no había ningún editor brillante, ni siquiera algo así como vi o emacs (editar o DOS, je). Sólo se podía imprimir su programa en la consola y, a continuación, deberá añadir nuevas líneas o reemplazarlos, dando el número de línea correspondiente en primer lugar. No se podía navegar a través del "archivo" (el programa se mantiene en la memoria, si bien se puede guardar una copia en el disco) con el cursor como si estuviera acostumbrado a hoy en día.

Por lo tanto, los números de línea no sólo se necesitan como etiquetas para el infame GOTO, pero de hecho necesarios para decirle al intérprete en qué posición en el programa de flujo que está editando.

Otros consejos

Tiene una historia Loong-loong.

La numeración de líneas en realidad proviene de Dartmouth BASIC, que era la versión original del lenguaje de programación BASIC y fue la parte integrante de la denominada Sistema de Intercambio de Tiempo de Dartmouth. DTSS que tenía un rudimentario IDE, que no era más que una línea de comandos interactiva.

Así que cada línea escrita dentro de este "IDE", y comenzando con un número de línea, se añadió al programa, reemplazando cualquier línea previamente almacenado con el mismo número; cualquier otra cosa se supone que es un comando DTSS e inmediatamente ejecutado.

Antes de que existiera algo llamado VDT (terminal de visualización de video), los veteranos programábamos en tarjetas perforadas.Las tarjetas perforadas reservaban las columnas 72 a 80 para los números de secuencia: si dejaba caer su mazo de cartas y todas se desordenaban, podía colocar la baraja en un clasificador de tarjetas que ordenaría las tarjetas según esos números de secuencia.En muchos sentidos, los números de línea BÁSICOS eran similares a esos números de secuencia.

Otra ventaja en el mundo BASIC es que antiguamente BASIC se interpretaba tal como se ejecutaba.El uso de etiquetas en lugar de números de línea secuenciales para las ramas requeriría un primer paso para seleccionar todas las etiquetas y sus ubicaciones, mientras que si usa números de línea, el intérprete sabe si necesita comenzar a escanear hacia adelante o hacia atrás para encontrar el destino.

En el día usted no tiene un editor de 2 dimensiones como emacs o vi. Todo lo que tenía era la línea de comandos.

Su programa se almacena en la memoria y que tendría que escribir una sola línea comandos para editar líneas individuales.

Si usted fuera un dios Unix que podría hacerlo con Ed o algo, pero para BASIC en una columna C-64, VIC-20, o TRS-80 usted acaba de sobrescribir la línea.

Así que una sesión podría ser:

$10 PRINT "Hellow World"
$20 GOTO 10
$10 PRINT "Hello World"

Y ahora el programa funcionaría correctamente.

Algunas unidades centrales más antiguas incluso tenían terminales de línea sin una pantalla. Todo tu sesión fue impreso en papel en tinta!

El "¿Quién?" serían los inventores, Kemeney y Kurtz.

Después de leer las respuestas, he comprobado el Wikipedia entrada para "Dartmouth BASIC", y fue sorprenda al saber

  

El primer compilador fue producido antes de que el sistema de tiempo compartido estaba listo. Conocido como CardBASIC, se pretende para el sistema de procesamiento por lotes basado lector de tarjetas estándar.

Por lo tanto, parece que Pablo Tomblin "obtiene la plaza".

Se originaron en FORTRAN, del que se derivó BASIC. Sin embargo, en FORTRAN únicas líneas referenciadas por otras líneas (como objetivos GOTO) necesitan números. En BASIC que tenían un uso secundario, que debía permitir la edición de líneas específicas.

La respuesta de Pablo Tomblin es el más completo, pero me sorprende que nadie ha mencionado que una gran parte del objetivo inicial del proyecto básico era proporcionar un entorno interactivo amigable para los principiantes usando tiempo compartido. (Visión Kurtz y Kemeny de "acceso universal para todos los estudiantes" estaba muy por delante de su tiempo en este sentido.)

El sistema básico que fue desarrollado para cumplir con este objetivo aparece teletipo ASR-33 (y más tarde otros) terminales de impresión. Cuando se conecta a un sistema operativo de tiempo compartido con capacidad, estas editando y ejecutando programas BASIC en un modo interactivo (a diferencia de trabajar con tarjetas perforadas) permitidos, pero no están cursor direccionable. Los números de línea eran una forma amigable para los principiantes a ambos especificar el orden de las instrucciones del programa y permitir la edición inequívoca en ausencia de un editor de imágenes. La entrada de Wikipedia para "editor de línea" explica, además, y cualquiera que haya tratado de usar un editor de línea (como la ONU * 'ed' x) se puede apreciar por qué Kurtz y Kemeny debería agradecer por haber salvado el principiante tener que aprender la críptica secuencias de comandos necesarios para la edición de texto de esta manera.

Ya en los años cincuenta, cuando las lenguas altos de programación estaban en sus inicios, no hubo terminales, no hay editores, no hay monitores (sí, no hay monitores), sólo pegadores de tarjetas y lectores (para escribir y leer el contenido de tarjetas en memoria de un ordenador) e impresoras (para resultados de impresión, naturalmente). Más tarde, se introdujo la cinta, pero eso es otra historia.

Cada tarjeta perforada tenía su propio número. Había varias razones para ello; desde puramente mantenerlos en orden, para determinar la secuencia de ejecución. Cada carta era una línea de código (en términos actuales). Dado que, en ese momento, no había construcciones como if..thenthen..else, o lo que sea la variante de similares, la secuencia de ejecución tuvo que ser determinado de alguna manera. Así se introdujeron GOTO. Ellos fueron la base de bucles. El "código espagueti" término proviene de ese período de tiempo también, ya que el código mal escrito era relativamente difícil de seguir, como los espaguetis en una placa:)

Yo diría que se trata de ensamblador, donde cada instrucción tiene una dirección que puede ser un salto a por otra instrucción.

Además, los primeros ordenadores no tenían mucha memoria y el almacenamiento de un número de línea sólo se necesitan dos bytes (si se hace correctamente). Escribir una etiqueta requiere más memoria, por primera vez en el lugar, donde se define que la etiqueta, a continuación, en cualquier comando de salto.

Por último, en los viejos tiempos no había ningún editores de lujo. La única "editor" era una interfaz de línea de comandos simple, que trata todo lo que empieza con un número formar parte de un programa y todo lo demás como comandos que se ejecutan inmediatamente. La mayoría ejemplo prominente debe ser el Commodore 64.

dialectos más recientes del básico no tienen la necesidad de que los números de línea por más tiempo.

en Básico, si no tiene un número de línea, ¿cómo se puede preformar a

GOTO 10 

que era una manera de saltar líneas, una buena manera de que se encontró ... Hace más de 20 años!

Hoy en día, las líneas nos ayudan a detectar errores / excepciones debido a que los motores de depuración se hacen para enviar en el mensaje que obtuvimos una excepción en la línea de xxx y saltan de inmediato a él!

imaginar un mundo sin números de línea ... ¿cómo puede un periodista ser pagada sin las líneas?

  

"Ahora que sabes la novela, usted tiene que escribir un resumen de no más de 50 líneas"

recuerda esto? Incluso en la escuela aprendemos acerca de los números de línea!

si no fue inventado, alguien ya inventado de nuevo por lo que podría utilizarlo muy bien:)

No todas las versiones de los números de línea básica necesaria. QBasic, por ejemplo, etiquetas compatible. A continuación, podría saltar a aquellos con GOTO (haciendo caso omiso de Dijkstra "Ir a la Declaración consideran perjudiciales," por el momento).

La respuesta ya está por encima. Paul Tomblin lo escribió (con una advertencia a zabzonk).
En realidad, yo diría que cualquier respuesta que no menciona "tarjetas perforadas" es incompleta, si no menciona ni tarjetas perforadas ni FORTRAN, no es correcto. Puedo decir que esto es definitivamente correcto porque mis padres ambas tarjetas perforadas utilizadas de forma regular (que comenzaron con FORTRAN 66 y 77), y luego emigró a básico y COBOL en los años 80.

En los primeros días, la mayoría de los programas se introdujeron con tarjetas perforadas. Las tarjetas perforadas se introdujeron por lo general en secuencia, por lo general una instrucción por tarjeta, con etiquetas (objetivos JMP / JSR) ser una tarjeta de instrucciones por separado.

Para editar el programa, se ha sustituido la tarjeta.

implementaciones posteriores añaden un número de secuencia opcional en el extremo derecho de la línea, de modo que cuando / si consiguieron fuera de orden, podían ser resequenced por un lector automatizado.

Fortran utiliza ambas etiquetas de destino numéricos a la izquierda (col 1-5) y dejó un bloque reservado a la derecha (73-80) para la secuencia o comentario.

Cuando BASIC fue escrito inicialmente, se decidió mover los números de secuencia hacia la izquierda, en el campo de la etiqueta del FORTRAN, y para permitir la sobrescritura huella de memoria tarjetas anteriores ... como un modo de edición. Esto fue pensada para el entorno de desarrollo interactivo, pero funcionó igual de bien con tarjetas. Y tarjetas se utilizaron en algunas implementaciones tempranas para una variedad de razones.

Tenga en cuenta: Muchos ordenadores eran lector de tarjetas y puerto de impresora a través de finales de 1970. Incluso aunque' fundamentos del modo interactivo estaban disponibles, tarjetas perforadas se utilizan con frecuencia los programas básicos. Dado que muchos simplemente se alimentaban en el IDE, trabajaron exactamente de la misma manera. Incluyendo necesidad de una tarjeta "Ejecutar" en el extremo. En tales casos, se podría simplemente virar una tarjeta de corrección y otra tarjeta Ejecutar para volver a ejecutar con una variación de alguna variable; Del mismo modo, en los programas complejos, simplemente añadiendo una línea corregida de una tarjeta antes de la carrera era adecuado para editar los problemas sin tener que gastar un tiempo precioso para encontrar la propia tarjeta errante.

Me gusta la iglesia robot en Futurama, en las paredes fueron cosas escritas como

10 SIN
20 GOTO HELL

En el Speccy no se podía editar una línea sin el número de línea.

Los encuentro muy útil cuando se enlaza. Yo no tengo que apuntar a una línea cuando mi pareja tiene el teclado, sólo puedo decir, "en la línea 74, que realmente no debería ser getMoreBeer ()?"

El editor original para DOS era una utilidad maravilloso llamado edlin . Sólo se podía editar una sola línea. Para hacer la vida aún más interesante en muchas versiones de BASIC que podría escribir líneas fuera de servicio, la línea 10, 20, 30, 25, 5, La ejecución sería por línea número de línea no por el orden de aparición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top