projekt „oux” w C — nowy język?

0

Utworzyłem nową metodologię programowania w C, opartą głównie na zadaniach (D), przełącznikach (U), raportach (X) i zdarzeniach. Jeśli ktoś chciałby zajrzeć i napisać jakieś uwagi, a może napisać w tym jakiś program, to zapraszam na https://github.com/overcq/oux; ściąga definicji języka jest tutaj: https://github.com/overcq/oux/blob/master/compile/E_coux_S_language.h.

0
    I_B();
    E_io_Q_stream_out_W_(out);
    I_V()
        goto End;
    X_M( x_window, close_window );

Cóż - za czytelnie to nie wygląda...
Coby wręcz nie powiedzieć, że wygląda jak gdyby kot przeleciał po klawiaturze i stworzył to przypadkiem :-P

0
Patryk27 napisał(a):
    I_B();
    E_io_Q_stream_out_W_(out);
    I_V()
        goto End;
    X_M( x_window, close_window );

Cóż - za czytelnie to nie wygląda...
Coby wręcz nie powiedzieć, że wygląda jak gdyby kot przeleciał po klawiaturze i stworzył to przypadkiem :-P

Pierwsza litera z instrukcji takiej jak I_V i inne oznacza czego dotyczy, tutaj przepływu wykonania, a druga litera oznacza, co z tym pierwszym, tutaj czy wystąpiło ‹niepowodzenie›. Każda litera została dopasowana do dwóch współrzędnych prostokątnych: z góry na dół przepływ wykonania, po lewej program, po prawej system, oraz poziomo– przepływ danych. Przykładowo „I” to sam przepływ wykonania, a „V” to złączenie przepływu wykonania programu i systemu czyli zakończenie przepływu wykonania programu. Na przykład „M” to jest (z góry na dół) utworzenie obiektu wspólnego przepływu wykonania programu i systemu czyli po prostu utworzenie obiektu, itd.

3

Fajnie, że jest to zrozumiałe dla Ciebie - dla mnie, i jak przypuszczam innych, nadal nie ;-)

0

O rany... mamy XXI wiek a Ty "oszczędzasz literki". Nawet jeśli ciekawe i przydatne, właśnie utrąciłeś 95% czytelników przez ekstrawaganckie nazewnictwo.
Napisz proszę z jakiego powodu Twoje podejście/paradygmat/technika jest lepsza lub jaki ma obszar zastosowań..

0

Seriously? ;)

screenshot-20180425162143.png

0
Mokrowski napisał(a):

O rany... mamy XXI wiek a Ty "oszczędzasz literki". Nawet jeśli ciekawe i przydatne, właśnie utrąciłeś 95% czytelników przez ekstrawaganckie nazewnictwo.
Napisz proszę z jakiego powodu Twoje podejście/paradygmat/technika jest lepsza lub jaki ma obszar zastosowań..

Zauważ, że te literki można zawsze zdefiniować pod pełnymi nazwami przez dodanie paru linijek w pliku nagłówkowym języka. Tylko trzeba te nazwy wymyślić.

Projektowanie oprogramowania w oparciu o ‹zadania›, które są wewnętrznie w programie synchronicznymi wątkami czekającymi na raporty generowane przez inne wątki. Ponadto tam są też wzorce (trzy) użycia wywołań systemowych z obsługą błędów, tak że każde wywołanie ma obsługę błędów (co najmniej przerywającą program) przez objęcie go w jedną instrukcję z tych trzech. I umieściłem tam też trochę funkcji zastępujących całkowicie te z biblioteki C, ale bardziej w stylu funkcyjnym, ogólnym, przetwarzających dane ogólnie, bez ograniczeń tych z biblioteki (podobnie jak memcpy a strcpy już obecne do porównania).

0

OMG: https://github.com/overcq/oux/blob/master/program/%E2%80%98gui%E2%80%99/main.cx#L49

for_n( i, 1 )
    {   D_M( main, timer_draw );
        N display_id = E_x_Q_display_M();
        struct E_x_Q_display_Z *display = E_mem_Q_tab_R( E_x_Q_display_S, display_id );
        for_each( screen_id, display->screen, E_mem_Q_tab )
        {   for_n( i, 2 )
            {   N window_id = E_x_Q_window_M( display_id, screen_id
                , 254, 254
                );
                struct E_x_Q_window_Z *window = E_mem_Q_tab_R( display->window, window_id );
                I object_id = E_x_Q_object_Z_text_field_M( display, window
                , 2
                );
                for_n( i, 2 )
                {   I id = E_x_Q_object_Z_text_field_M( display, window
                    , 2
                    );
                    struct E_x_Q_object_Z *object = E_mem_Q_tab_R( window->object, object_id );
                    object->child[i] = id;
                    for_n( i, 2 )
                    {   I id_2 = E_x_Q_object_Z_text_field_M( display, window
                        , 2
                        );
                        object = E_mem_Q_tab_R( window->object, id );
                        object->child[i] = id_2;
                        for_n( i, 2 )
                        {   I id_3 = E_x_Q_object_Z_text_field_M( display, window
                            , 2
                            );
                            object = E_mem_Q_tab_R( window->object, id_2 );
                            object->child[i] = id_3;
                            for_n( i, 2 )
                            {   I id_4 = E_x_Q_object_Z_text_field_M( display, window
                                , 0
                                );
                                object = E_mem_Q_tab_R( window->object, id_3 );
                                object->child[i] = id_4;
                            }
                        }
                    }
                }
                E_x_Q_object_I_lay_2( display, window );
                E_x_Q_object_M( display, window
                , 0
                , 5, 5
                , 61, 61
                , E_main_Q_timer_I_draw
                );
                E_x_Q_object_M( display, window
                , 0
                , 55, 53
                , 171, 191
                , E_main_Q_timer_I_draw
                );
                E_x_Q_object_M( display, window
                , 0
                , 151, 191
                , 21, 21
                , E_main_Q_timer_I_draw
                );
            }
        }
0

Wygląda tragicznie

0

Szczerze po oględzinach na github, wygląda trochę jak kod kosmitów przechwycony przez SETI.

Ja bym chciał kompilator C11 od ms na windows niż to.

1 użytkowników online, w tym zalogowanych: 0, gości: 1