Investor pro C++ IDE

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #330 kdy: 19. 09. 2021, 12:45:00 »
Zásadní rozdíl mezi linterem a kompilerem (staticky typovaného jazyka) je v tom, že linter lze nepoužít. (Plus je tam ta historická souvislost, že linter se používá na jazyky, které nebyly navrženy se statickými typy - Python, JS například.)
Původní linter vznikl pro C :)
C bylo z hlediska typů dost děravé - raw pointery
Pointery jsou taky typované, "hvězdička" v C je v podstatě jen typový operátor a v překladači se s ním dá krásně pracovat (zdraví Hindney a Miler). Zbytek je sice v podstatě pravda, ale nijak nesouvisí s typovým systémem.


Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #331 kdy: 19. 09. 2021, 12:53:45 »
Pointery jsou taky typované, "hvězdička" v C je v podstatě jen typový operátor a v překladači se s ním dá krásně pracovat (zdraví Hindney a Miler). Zbytek je sice v podstatě pravda, ale nijak nesouvisí s typovým systémem.

Co je to platné, když pak vznikají věci jako
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #332 kdy: 19. 09. 2021, 14:04:20 »
Co je to platné, když pak vznikají věci jako
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
Tohle je zrovna nešťastné použití void. Holt bez typových parametrů to jinak nejde a v době vzniku C byly typové systémy primitivní. IMHO je lepší brát C jako "přenositelný asembler", z dnešního pohledu je jeho typový systém směšný (ovšem z dnešního pohledu je směšné kde co z historie IT).

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #333 kdy: 19. 09. 2021, 17:58:52 »
Zásadní rozdíl mezi linterem a kompilerem (staticky typovaného jazyka) je v tom, že linter lze nepoužít. (Plus je tam ta historická souvislost, že linter se používá na jazyky, které nebyly navrženy se statickými typy - Python, JS například.)
Původní linter vznikl pro C :)

C bylo z hlediska typů dost děravé - raw pointery, implicitní konverze, neexistence booleovského typu, pak spousta nástražných min typu i++ a ++i, příkaz switch, který si přímo koleduje o průšvih, docela dost důvodů kód hlídat na tak malý jazyk.

Pořád lepší než assembler, který se ani uhlídat nedal.

Re:Investor pro C++ IDE
« Odpověď #334 kdy: 20. 09. 2021, 08:39:14 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)

V assembleru je třeba brnkačka napsat vnitřnosti :
Kód: [Vybrat]
bool add_overflow (int a, int b, int *res)
{
}
Ve standardním C je to past i pro profíky.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #335 kdy: 20. 09. 2021, 09:47:50 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)
Které dialekty například?

Re:Investor pro C++ IDE
« Odpověď #336 kdy: 20. 09. 2021, 10:44:14 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)
Které dialekty například?
Třeba gcc dialekt ve kterém je psaný linux.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #337 kdy: 20. 09. 2021, 11:18:50 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)
Které dialekty například?
Třeba gcc dialekt ve kterém je psaný linux.
To nevím, jestli je nadstandardní. Možná nadstandardní guláš :)

Mně se z rozšíření C líbí akorát bloky, ale to je čistě osobní preference a navíc víceméně irelevantní, protože na naprostou většinu projektů se hodí jiné jazyky vyšší úrovně.

Re:Investor pro C++ IDE
« Odpověď #338 kdy: 20. 09. 2021, 11:33:16 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)
Které dialekty například?
Třeba gcc dialekt ve kterém je psaný linux.
To nevím, jestli je nadstandardní. Možná nadstandardní guláš :)

Mně se z rozšíření C líbí akorát bloky, ale to je čistě osobní preference a navíc víceméně irelevantní, protože na naprostou většinu projektů se hodí jiné jazyky vyšší úrovně.
Tím nadstandardem jsem myslel čistě nad rámec standardu :) Prostě jeden každý překladač C, co jsem měl kdy v rukou poskytoval věci, co standardní C neposkytuje nebo nezaručuje, jinak by se v tom snad nedalo ani pracovat.
C je jazyk co člověka buď střílí do nohy, nebo jebe do zadeke násadou od krumpáče. :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #339 kdy: 20. 09. 2021, 13:42:14 »
IMHO je lepší brát C jako "přenositelný asembler"...
Jako přenositelný assembler je ho třeba brát s hodně velkou rezervou. Obzvlášť standardní C, ne různé nadstandardní dialekty. :)
Které dialekty například?
Třeba gcc dialekt ve kterém je psaný linux.
To nevím, jestli je nadstandardní. Možná nadstandardní guláš :)

Mně se z rozšíření C líbí akorát bloky, ale to je čistě osobní preference a navíc víceméně irelevantní, protože na naprostou většinu projektů se hodí jiné jazyky vyšší úrovně.
Tím nadstandardem jsem myslel čistě nad rámec standardu :)
Aha, tak to pak jo.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #340 kdy: 20. 09. 2021, 13:43:17 »
C je jazyk co člověka buď střílí do nohy, nebo jebe do zadeke násadou od krumpáče. :)
Někdy se hodí, kromě jádra OS třeba nějaké to embedded, ne?

Re:Investor pro C++ IDE
« Odpověď #341 kdy: 20. 09. 2021, 14:17:46 »
C je jazyk co člověka buď střílí do nohy, nebo jebe do zadeke násadou od krumpáče. :)
Někdy se hodí, kromě jádra OS třeba nějaké to embedded, ne?
Jasně že se hodí. Akorát je to pěstní klín z kompilátorového pravěku a podle toho to pak vypadá. Ten jazyk je krásně jednoduchý pro autory překladačů (pokud nechtějí i pořádný optimalizátor), takže má překladač skoro pro všechno. Akorát pro programátory se ten jazyk jednoduše jen tváří.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #342 kdy: 20. 09. 2021, 14:23:59 »
Jasně že se hodí. Akorát je to pěstní klín z kompilátorového pravěku
Hezká analogie :)

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #343 kdy: 21. 09. 2021, 12:43:59 »
C je jazyk co člověka buď střílí do nohy, nebo jebe do zadeke násadou od krumpáče. :)
Někdy se hodí, kromě jádra OS třeba nějaké to embedded, ne?
Jasně že se hodí. Akorát je to pěstní klín z kompilátorového pravěku a podle toho to pak vypadá. Ten jazyk je krásně jednoduchý pro autory překladačů (pokud nechtějí i pořádný optimalizátor), takže má překladač skoro pro všechno. Akorát pro programátory se ten jazyk jednoduše jen tváří.


len si treba uvedomiot dve veci: vykon tehdajsich pocitacov, dostupne programovacie jazyky a to, ze kompilator C trebalo napisat v podstate assembleri.

Takze, bolo by fajn vytvorit jazyk s generikami, ale je mozne, ze preklad tehdajsich programov by sa nezmestil do RAM-ky. A tiez to, ze C-sko pokryvalo tehdajsie pozidavky a jeho vlastnosti su adkevatne jeho urceniu.

Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Investor pro C++ IDE
« Odpověď #344 kdy: 21. 09. 2021, 13:01:34 »
Takze, bolo by fajn vytvorit jazyk s generikami, ale je mozne, ze preklad tehdajsich programov by sa nezmestil do RAM-ky. A tiez to, ze C-sko pokryvalo tehdajsie pozidavky a jeho vlastnosti su adkevatne jeho urceniu.

Však jo, historickou užitečnost mu asi nikdo nebere. Když jsem v devadesátkách porovnával Turbo Pascal s Turbo C, byl jsem nadšený tím, jak má C vymakanou základní knihovnu, úspornou syntaxi a (po přečtení Učebnice od P. Herouta) všechno do sebe smysluplně zapadá (z mého pohledu trochu na rozdíl od Pascalu - ten měl zase výhodu v rychlé kompilaci apod.).

Pak už to všechno začalo být poněkud složitější - přišlo C++ a problémy s kompatibilitou, nástup Javy, která měla všechno vyřešit apod...