Re[11]: Oberon vs C#
От: rudzuk  
Дата: 22.04.24 11:01
Оценка: 1 (1)
Здравствуйте, Разраб, Вы писали:

Р> Скачал последний релиз 9-10(исходники)

Р> собрал бутстрап(init)
Р> потом Build
Р> в папке vostok создал папке bb(положил в нее Hello.mod, BubblSort.mod)
Р> из родительской
Р> result/ost run to-bin Hello bb/hello -infr . -m bb
Р> xubuntu lts последняя

У меня Ubuntu 22.04. vostok ставил из снапа. В результате, удалось запустить опустив параметр to-bin: vostok ./Hello.mod . -m . Он создает папку в tmp, куда складывает сгенерированный си-код, собранный бин и запускает его. Результаты у меня такие:
HELLO

real    2m37,695s
user    2m37,612s
sys    0m0,044s


  Исходник Hello.c
/* Generated by Vostok - Oberon-07 translator */

#include <o7.h>

#include "Out.h"
#include "BubbleSort.h"

#define hello_cnst ((o7_char *)"HELLO")
#define m_cnst 100000

static double a[m_cnst];
static o7_int_t i;
static double e;

extern int main(int argc, char *argv[]) {
    o7_init(argc, argv);
    Out_init();
    BubbleSort_init();


    e = o7_flt(m_cnst);

    for (i = 0; i < m_cnst; ++i) {
        a[o7_ind(m_cnst, o7_sub(o7_sub(m_cnst, i), 1))] = e;
        e = o7_fsub(e, 1.0);
    }

    BubbleSort_Sort(m_cnst, a);

    Out_String(6, (o7_char *)"HELLO");
    Out_Ln();
    return o7_exit_code;
}


  Исходник BubbleSort.c
/* Generated by Vostok - Oberon-07 translator */

#include <o7.h>

#include "BubbleSort.h"

static void Sort_Swap(double *a, double *b) {
    double t;

    t = *a;
    *a = *b;
    *b = t;
}

extern void BubbleSort_Sort(o7_int_t a_len0, double a[/*len0*/]) {
    o7_int_t i, j;

    for (i = 0; i < a_len0; ++i) {
        for (j = 0; j <= o7_sub(o7_sub(a_len0, 2), i); ++j) {
            if (a[o7_ind(a_len0, o7_add(j, 1))] < a[o7_ind(a_len0, j)]) {
                Sort_Swap(&a[o7_ind(a_len0, o7_add(j, 1))], &a[o7_ind(a_len0, j)]);
            }
        }
    }
}
avalon/3.0.2
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.