2012-01-22 6 views
11

¿Por qué tiene que sangrarse COBOL, como en, tener espacio adicional en cada archivo de origen?¿Por qué tiene que sangrarse COBOL?

consideran este código (tenga en cuenta el espacio adicional):

IDENTIFICATION DIVISION. 
    PROGRAM-ID. HELLO-WORLD. 
    PROCEDURE DIVISION. 
     DISPLAY 'Hello, world'. 
     STOP RUN. 

Un formato similar se puede ver en el código Fortran:

program hello 
     print *, "Hello World!" 
    end program hello 

Pero ¿por qué COBOL y Fortran necesitan este espacio en blanco? ¿Cual es la razón?

+0

El código es probablemente Fortran 90 o posterior, no 77. –

Respuesta

19

Cobol ya no tiene que sangrar. AFAIK, todosmás compiladores modernos admiten formato de fuente gratuita Cobol.

El motivo original era tratar con tarjetas perforadas. Cobol mantuvo las primeras 6 posiciones para un número de secuencia de línea. La columna 7 era una continuación/comentario/debug/form-feed. El Área "A", o las Columnas 8-11, indicaron ciertos artefactos especiales del lenguaje como 01 niveles, nombres de sección o párrafo, et al. El área "B", o Columnas 12 - 72, era para código abierto. Las columnas 73 - 80 fueron para números de secuencia del sistema operativo.

Los dos idiomas que menciona, Cobol y Fortran, se escribieron antes de que existiera la generación del analizador automático. Y no tenían un estado de la técnica real para recurrir a ideas buenas y malas sobre cómo crear texto fuente analizable. Por lo tanto, algunas de las cosas, como el Área "A" para encabezados de secciones especiales, facilitaron la tarea de escribir analizadores manualmente. Los lenguajes modernos tienden a usar gramáticas libres de contexto para simplificar la generación del analizador. Pero eso es posterior a Cobol.

+3

El compilador IBM Enterprise COBOL (mainframe) aún requiere columnas. – zarchasmpgmr

+0

De hecho, estás en lo correcto. SRCFORMAT (EXTEND) solo está disponible en IBM Cobol para AIX. –

+0

No veo la conexión inmediata entre el uso de tarjetas perforadas y las reglas de indentación. La segunda parte de tu respuesta parece dar una razón más plausible. – eriktous

Cuestiones relacionadas