Gcc

Од Сподели wiki
Прејди на: содржини, барај

Колекцијата на компајлери од 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 е одржувано од голема група на програмери низ целиот свет и е пренесено на многу процесори и оперативни системи. Иако е првобитно создаден за GNU и GNU/Linux оперативните системи,тој се користи како главен компајлер и за други оперативни системи како BSD, Mac OS X, NeXTSTEP, и 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 освен Ада фронтендот,кој е напишан во Ада.

Врски

GNU GCC

Онлајн документација

Едноставно GCC упатство