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.
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
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.
Fajnie, że jest to zrozumiałe dla Ciebie - dla mnie, i jak przypuszczam innych, nadal nie ;-)
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ń..
Seriously? ;)
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).
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
);
}
}
Wygląda tragicznie
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.