Compilador online

Compilador COBOL online

Escreva seu código em COBOL (GnuCOBOL 3.2) abaixo e rode de graça, com entrada, num sandbox nos nossos servidores. Sem cadastro e sem anúncios.

Pela equipe do OnlineCompiler.io. Atualizado em .

Also in EnglishTambién en español

IDENTIFICATION DIVISION.
PROGRAM-ID. QUADRADOS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOME      PIC X(64).
01 N         PIC 9(4).
01 I         PIC 9(4).
01 I-TEXTO   PIC Z(3)9.
01 QUADRADO  PIC Z(7)9.
PROCEDURE DIVISION.
    *> Lê o nome e um número da aba Entrada
    ACCEPT NOME
    ACCEPT N

    DISPLAY "Olá, " FUNCTION TRIM(NOME) "!"
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > N
        MOVE I TO I-TEXTO
        COMPUTE QUADRADO = I * I
        DISPLAY FUNCTION TRIM(I-TEXTO) " ao quadrado é " FUNCTION TRIM(QUADRADO)
    END-PERFORM
    STOP RUN.
Compartilhar gera um link, sem precisar de conta. Salvar guarda o código na sua conta.

Quer conferir uma solução contra várias entradas? O compilador COBOL com casos de teste roda todas de uma vez e marca cada uma como aprovada ou reprovada.

Como dar entrada (stdin)

Antes de apertar Executar, digite na aba Entrada tudo o que o programa vai ler. Ele recebe esse texto pela entrada padrão (stdin). Em COBOL, fica assim:

ACCEPT NOME              *> uma linha inteira (NOME PIC X(64))
ACCEPT N                 *> uma linha com um número (N PIC 9(4))
ACCEPT LINHA             *> dois números na mesma linha, que o UNSTRING separa:
UNSTRING LINHA DELIMITED BY ALL SPACE INTO A B

A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda. Coloque cada valor numa linha, ou separe por espaços, conforme o programa lê.

Versão e limites

VersãoCOBOL GnuCOBOL 3.2
Compilado comcobc -x -free -Wno-missing-newline -A -w code.cob -o code.out
Executado com./code.out
Limites30 segundos, 512 MB de memória, 2 CPUs, 64 KB de saída por fluxo, sem rede
Execução típica1,05 s, e 1,35 s para a mais lenta em cada 20 (como medimos, em inglês)

Bom saber

  • Compila com o GnuCOBOL 3.2 (cobc -x) em formato livre, então o código pode começar na coluna 1.
  • Para código em formato fixo, com comentários * na coluna 7, coloque >>SOURCE FORMAT IS FIXED na primeira linha.
  • ACCEPT lê a próxima linha da aba Entrada, e STOP RUN RETURNING 3 encerra com o código de saída 3.
  • Um campo numérico como PIC 9(4) aparece com zeros à esquerda (0007). Para mostrar só 7, mova o valor para um campo editado, como PIC Z(3)9, e use FUNCTION TRIM, como no programa do editor.

Rodar COBOL a partir do seu app

Para rodar COBOL no seu próprio app, envie o código e a entrada para o endpoint síncrono com uma chave de API, e a saída volta na resposta. É grátis até 100.000 execuções por mês. Documentação da API (em inglês).

O editor acima é um widget que você pode colocar no seu site, blog ou curso. Com o atributo data-locale="pt", os botões aparecem em português. Como incorporar o editor (em inglês).

Outras páginas

Perguntas frequentes

O compilador COBOL online é grátis?

Sim. Rodar COBOL nesta página não exige conta e não tem anúncios. Para rodar COBOL no seu próprio app ou site, a API e o widget são grátis até 100.000 execuções por mês, uso comercial incluído.

Meu programa em COBOL pode ler entrada?

Sim. Digite a entrada na aba Entrada antes de executar, e o programa a lê pela entrada padrão (stdin). A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda.

Posso usar bibliotecas em COBOL?

O runtime do GnuCOBOL e as funções intrínsecas, como FUNCTION TRIM e FUNCTION NUMVAL. Não dá para instalar outras bibliotecas, e os programas não têm acesso à rede.

Quanto tempo um programa pode rodar?

Até 30 segundos, com 512 MB de memória e 2 CPUs. Um programa que ainda estiver rodando aos 30 segundos é interrompido com o código de saída 124, e a saída acima de 64 KB por fluxo é cortada.

Onde meu código roda?

Nos nossos servidores, num sandbox gVisor novo e sem acesso à rede, que é apagado quando a execução termina. Cada execução fica guardada no histórico com a saída; a página de segurança (em inglês) explica o que é armazenado.

Existe uma API para COBOL?

Sim. Envie o código, o id do compilador gnucobol-3.2 e a entrada para https://api.onlinecompiler.io/api/run-code-sync/ com uma chave de API, e a resposta traz a saída, os erros, o código de saída, o tempo e a memória. É grátis até 100.000 execuções por mês, e a mesma chave serve para as outras 45 linguagens. A documentação está em inglês.