PL/1

PL/1, acrónimo de Programming Language 1 (Lenguaje de Programación 1), fue propuesto por IBM hacia 1970 para responder simultáneamente a las necesidades de las aplicaciones científicas y comerciales, disponible en las novedosas plataformas de utilidad general IBM 360 y más adelante IBM 370.

Este lenguaje tenía muchas de las características que más adelante adoptaría el lenguaje C y algunas de C++. Por desgracia, IBM registra el nombre del lenguaje como forma de mantener control sobre su desarrollo, lo que disuadió a otras empresas de dar ese nombre a sus implementaciones. No siendo posible encontrar un único lenguaje para diversas plataformas, los potenciales usuarios del lenguaje prefirieron no adoptarlo a pesar de sus múltiples innovaciones, que incluían multiprocesamiento, recursión, estructuras de control modernas, facilidades para la puesta a punto, asignación dinámica de espacio para estructuras de datos, procedimientos genéricos, etc.

Sin embargo, dentro de los usuarios de IBM, el lenguaje se utilizó con bastante intensidad, y el proyecto Multics utilizó PL/1 como lenguaje de desarrollo para su sistema de operación.

PL/1 fue probablemente el primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba.

Ejemplos de código

Hola Mundo.

 Test: procedure options(main);
 
   declare My_String char(20) varying initialize('Hola, mundo!');
    
   put skip list(My_String);
   
 end Test;

Mostrar la posición de las líneas que coinciden con un patrón.

/* Lee una línea que contiene una cadena
/* y luego imprime cada línea sucesiva que contiene dicha cadena. */

find_strings: procedure options (main);
   declare pattern character (100) varying;
   declare line    character (100) varying;
   declare (line_no, end_file) fixed binary;

   end_file = 0;
   on endfile (sysin) end_file = 1;

   get edit (pattern) (L);
   line_no = 1;
   do while (end_file = 0);
      get edit (line) (L);
      if index(line, pattern) > 0 then
         put skip list (line_no, line);
      line_no = line_no + 1;
   end;

end find_strings;
Other Languages
беларуская: ПЛ/1
български: PL/I
bosanski: PL/I
català: PL/I
čeština: PL/I
dansk: PL/I
Deutsch: PL/I
English: PL/I
eesti: PL/I
فارسی: پی‌ال/۱
suomi: PL/I
français: PL/I
galego: PL/1
עברית: PL/I
hrvatski: PL/1
magyar: PL/I
italiano: PL/I
日本語: PL/I
한국어: PL/I
Nederlands: PL/1
norsk: PL/I
polski: PL/I
português: PL/I
русский: ПЛ/1
srpskohrvatski / српскохрватски: PL/I
slovenčina: PL/I
svenska: PL/1
тоҷикӣ: ПЛ/1
українська: PL/I
中文: PL/I