Gcc: Разлика помеѓу преработките
Нема опис на уредувањето |
(фортран не фронтран) |
||
Ред 23: | Ред 23: | ||
* Objective-C++ | * Objective-C++ | ||
* Подршката за CHILL била вклучена но е извадена поради недостаток на одржувачи. | * Подршката за CHILL била вклучена но е извадена поради недостаток на одржувачи. | ||
* Подршката за | * Подршката за Фортран пред верзијата 4.0 беше за Fortran 77 Додека во поновите верзии GFortran подржува Fortran * 95. | ||
Исто така има подршка за: | Исто така има подршка за: |
Преработка од 09:55, 30 март 2007
Колекцијата на компајлери од GNU или Gcc, е група компајлери за повеќе програмски јазици создадени од GNU проектот и издаден под GNU ОЈЛ и GNU LGPL лиценцита, и се главниот компајлери за Unix-оидни оперативни системи.
Оргинално софтверот е наречен GNU C компајлер, бидејќи го поджувал само програмскиот јазик C. GCC 1.0 бил издаден во 1987 година,а во декември истата година додадена е подршка за јазикот C++. Подоцна е развиена подршка за Fortran, Pascal, Objective C, Java, и Ada, како и за многу други јазици. Така GNU C Compiler (gcc) станува GNU Compiler Collection.
Краток преглед
Gcc е создаден од Richard Stallman во 1985 година. Тој модифицирал веќе постоечки компајлер со подршка да компајлира C. Компајлерот оргинално бил наменет за Pastel (проширен непортабилен дијалект на Pascal) и бил напишан во Pastel, a подоцна препишан во C од Лен Тауер и Richard Stallman па во 1987 издаден како комајлер на GNU проектот поради потребата од слободен компајлер.
Во 1997,група на развивачи,незадоволни од спориот развиток и затворената природа на Gcc,создале проект наречен EGCS (Experimental/Enhanced GNU Compiler System) кој споил неколку експериментални верзии на Gcc во еден проект. Развитокот на EGCS се одвивал побрзо од Gcc така што Gcc од изданието од 1999 е споено со EGCS Gcc е орджувано од голема група на програмери низ целиот свет и е пренесено на многу процесори и оперативни системи. Иако е првобитно создаден за гну и гну/линукс оперативните системи,тој се користи како главен компајлер и за други оперативни системи како BSD, Mac OS X, NeXTSTEP, and BeOS Иако е слободен софтвер Gcc се користи и за создавање на комерцијални и неслободни софтверски апликации. Поради неговата портабилност тој наоѓа голема примена кај апликациите кои треба да работат на различен хардвер и платформа,бидејќи кај различните компајлери постои проблем за развивање на код кој ќе работи исто кај сите платформи,додека Gcc исто го парсира кодот на сите платформи.
Програмски јазици
Од верзијата 4.1.1 (издадена на Мај,23,2006)андардната верзија има подршка:
- Ada (GCC за Ada или GNAT)
- C
- C++ (GCC за C++ или G++)
- Fortran (GCC за Fortran или GFortran)
- Java (GCC за Java или GCJ)
- Objective-C
- Objective-C++
- Подршката за CHILL била вклучена но е извадена поради недостаток на одржувачи.
- Подршката за Фортран пред верзијата 4.0 беше за Fortran 77 Додека во поновите верзии GFortran подржува Fortran * 95.
Исто така има подршка за:
- Modula-2
- Modula-3
- Pascal
- PL/I
- D
- Mercury
- VHDL
Процесорски архитектури
Процесори кои GCC ги подржува од верзијата 4.1 се:
- Alpha
- ARM
- Atmel AVR
- Blackfin
- HC12
- H8/300
- IA-32 (x86)
- AMD64 (x86-64)
- IA-64 или "Itanium"
- MorphoSys
- Motorola 68000
- MIPS
- PA-RISC
- PDP-11
- PowerPC
- Renesas R8C/M16C/M32C
- System/370, System/390
- SuperH
- SPARC
- VAX
Помалце познати процесори кои GCC ги подржува од верзијата 4.1:
- A29K
- ARC
- C4x
- CRIS
- D30V
- DSP16xx
- FR-30
- FR-V
- Intel i960
- IP2000
- M32R
- 68HC11
- MCORE
- MMIX
- MN10200
- MN10300
- Motorola 88000
- NS32K
- ROMP
- Stormy16
- V850
- Xtensa
Неофицијална подршка постои за следниве процесори:
- D10V
- MicroBlaze
- Nios II and Nios
- PDP-10
- MSP430
- Z8000
За портирање на GCC на нова платформа, најчесто се користи bootstrapping.
Структура
Надворешниот интерфејс е стандарден за Unix компајлер.Корисниците користат програма наречена gcc ,која ги извршува командните аргументи,одлучува кои компајлери за да ги користи за секој влезен фајл, го извршувa асемблерот на излезниот фајл, и по можност создава комплетна бинарна датотека.
Секој од компајлерите е оделна програма која го користи изворниот код да создаде асемблерски јазик.Сите компајлери имаат слична структура но секој компајлер е создаден за посебен програмски јазик,кој го парсира изворниот код на тој јазик и создава абстрактно синтаксно дрво, и заден дел кој го претвара дрвото во Регистерски преносен јазик. специфично за одредена платформа.
Речиси целиот GCC е напишан во C освен Ада фронтендот,кој е напишан во Ада.