1 | #+title: C
|
---|
2 | * C
|
---|
3 | [[https://bell-labs.com/usr/dmr/www/chist.html][История разработки языка C]]
|
---|
4 | ** Стандарт C 2010:
|
---|
5 | https://port70.net/~nsz/c/c11/n1570.html
|
---|
6 |
|
---|
7 | ** Основные реализации:
|
---|
8 | - [[file:20210519185300-gcc.org][GCC]]
|
---|
9 | - [[file:20210519185421-clang.org][Clang]] (LLVM)
|
---|
10 |
|
---|
11 | ** Отличия между реализациями GCC и Clang LLVM:
|
---|
12 | https://en.terminalroot.com.br/gcc-vs-llvm-which-is-the-best-compiler/
|
---|
13 | *** Количество поддерживаемых платформ
|
---|
14 | Architectures Supported by GCC:
|
---|
15 | Alpha, ARM, AVR, Blackfin, Epiphany (GCC 4.8), H8 / 300, HC12, IA-32
|
---|
16 | (x86), IA-64 (Intel Itanium), MIPS, Motorola 68000, PA-RISC, PDP-11,
|
---|
17 | PowerPC, R8C / M16C / M32C, SPARC, SPU, SuperH, System / 390 / zSeries,
|
---|
18 | VAX, x86-64, 68HC11, A29K, CR16, C6x, D30V, DSP16xx, ETRAX CRIS, FR-30,
|
---|
19 | FR-V, Intel i960, IP2000, M32R, MCORE, MIL-STD-1750A, MMIX, MN10200,
|
---|
20 | MN10300, Motorola 88000, NS32K, IBM ROMP, RL78, Stormy16, V850, Xtensa,
|
---|
21 | Cortus APS3, ARC, AVR32, C166, D10V, EISC, eSi -RISC, Hexagon,
|
---|
22 | LatticeMico32, LatticeMico8, MeP, MicroBlaze, Motorola 6809, MSP430, NEC
|
---|
23 | SX architecture, Nios II and Nios, OpenRISC, PDP-10, PIC24 / dsPIC,
|
---|
24 | PIC32, Propeller, RISC-V, Saturn (HP48XGCC), System / 370, TIGCC (m68k
|
---|
25 | variant), TriCore, Z8000 and ZPU.
|
---|
26 |
|
---|
27 | Architectures Supported by LLVM:
|
---|
28 | X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU,
|
---|
29 | MIPS, MSP430, SystemZ, WebAssembly, and XCore.
|
---|
30 |
|
---|
31 | *** API для работы
|
---|
32 | - У LLVM всё лучше со статическим анализом. GCC более highly coupled.
|
---|
33 | - У LLVM лучше с выводом ошибок
|
---|
34 |
|
---|
35 | ** Утилиты разработки (помимо компилятора):
|
---|
36 | - [[file:20210519193247-make.org][Make]]
|
---|
37 |
|
---|
38 | ** Статьи
|
---|
39 | - [[https://habr.com/ru/company/ruvds/blog/562530/][Хабр: Почему я всё ещё люблю C, но при этом терпеть не могу C++?]]
|
---|
40 | ** Материалы для изучения:
|
---|
41 | - [[http://mirror.yongbok.net/nongnu/c-prog-book/learning_gnu_c.html][Learning GNU C]]
|
---|
42 | - [[https://www.gnu.org/software/libc/manual/html_mono/libc.html][GNU C Library]]
|
---|