Шта је то - компајлер и како ради

21. 2. 2019.

Савремене компјутерске технологије су у сталној фази побољшања. Свакодневно се појављује све више нових технологија које омогућавају да се оствари оно што је недавно дефинисано као фикција. Језици, и људски и компјутерски, такође су подложни великим променама. У овом чланку ћемо вам детаљно рећи шта је то - компајлер, како радити са њим, за шта је створен и где се он сада може наћи. Овај чланак се препоручује не само почетницима Виндовс оперативног система, већ и програмерима који желе да знају скривена знања о њиховом систему.

Језик оперативног система

За почетак, вреди апстраховати, јер програмирање не само да покреће одређене кључне речи у машину, већ и пажљиво промишљене акције везане за компоненте система. У почетку је постојао бинарни код, затим су програмери створили полу-компјутерски програмски језик - асемблер, али за шта?

Замислите да морате рачунати сваки бит на калкулатору програмера, затим га исправно повезати и још много тога. У асемблеру, све је постало мало једноставније, али ипак веома, веома тешко када се упореди са савременим програмским језицима, на пример, Ц ++, који се зове један од најсложенијих, али ће се расправљати мало касније.

инсталлед цомпилер

У асемблерском језику, све се ради захваљујући процесорским регистрима: подели, множењу, померању вредности из тачке А у тачку Б, итд. . Други недостатак је био ограничен број ових регистара.

Осамдесетих година прошлог века одлучили су да осмисле програмски језик, захваљујући којем би било лако и једноставно написати оперативни систем. Тако се појавио Ц и ГЦЦ компајлер Ц из ГНУ-а. Ако користите Линук, требали сте да видите производе ове компаније. Иначе, асемблер се и данас користи, јер неки компајлери креирају објектне датотеке са бинарним кодом, док су други извршни - са кодом у асемблеру. Све зависи од развојне платформе.

Модерни компајлер има следеће програме:

  1. Дебуггер је програм који шаље поруке о грешкама од линкера, претпроцесора, тумача.
  2. Препроцесор је програм чији је главни задатак да тражи специјалне ознаке почевши од знака # и извршавајући одређену врсту команди. На пример, додавање библиотеке треће стране за компајлирање пројекта.
  3. Интерпретер је програм који преводи наш више или мање разумљив програмски језик у бинарни код или асемблер.
  4. Линкер је програм због којег се датотеке које недостају аутоматски повезују.

Компајлер садржи и 2 типа пројекта: динамички и статични. У првој се додају само неопходни пројектни фајлови, упркос развојном окружењу, ау другом случају, све у гомили (повезано, наравно). Дакле, из овога се може рећи да је компајлер цела листа програма за прикупљање и обраду информација у јасном и логичном облику за рачунар. Затим ћемо погледати како је све почело.

Први једноставни компајлери

Можда ћете се изненадити, али се први пут објект нашег чланка (који се тада звао и преводилац) појавио још 1954. године у Институту, специјализујући се за примењену математику. Она није укључивала тако велики скуп програма као што је сада, али је у то вријеме још увијек био пробој у науци. Није било дебагер, тако да су људи морали све да ураде буквално својим рукама, користећи стандардну и дискретну математику да би сазнали да ли је електронски рачунар добио прави резултат.

једноставан програм на ц ++

Да ли је могуће градити без новог језика?

Ако сте прилично интелигентни програмер, онда ћете бити у могућности да завршите овај задатак. Истина, то ће захтијевати пуно времена и труда. Успут, прије него што је постојала чак и таква професија - програмер-линкер. Само у новим програмским језицима све је аутоматизовано, а пре тога људи су морали да повежу делове Маке кода са фајловима. Успут, неки пројекти на Линуку сада се могу сакупити помоћу ових Макефиле-а, само требате специфицирати њихове зависности ручно.

развојно окружење

Након прикупљања кода, линкер је одустао од рада компјутеру за обраду, где је на крају добио готов бинарни код.

Као што видите, преводилац није само програм, већ и напори многих људи. И они, како тврди Хенри Форд, покушавају да аутоматизују сваки процес.

Најбољи Виндовс компајлер

Дакле, многи читаоци знају да постоји много мртвих језика, али чак и више живих, тј. Оних који ажурирају своју стандардну библиотеку најмање једном годишње. Као што смо рекли, 1980. година је створена - то је био пробој. Многи наши очеви и даље обожавају овај језик, али шта сада?

Живи и успијева у новом тијелу, ако могу тако рећи. Његов наследник је Ц ++ десно, иако је његовом творцу забрањено да пише код сличан Ц на њему, многи програмери ово игноришу и раде, али зашто је дозвољено тако грубо кршење правила?

ажурирано развојно окружење
  • Прво, узео је значајан део стандардних библиотека из Ц, а нови Г ++ компајлери су у стању да компајлирају Ц код, што само по себи указује на њихову сличност.
  • Друго, Ц ++ је створен да замени Ц, а резултате видимо сада. Иначе, Г ++ компајлер програм се не “куне” док се не користи барем једна класа - то је главна разлика између ова два језика. Можете назвати Г ++ најбољи компајлер, није узалуд захваљујући њему писати мобилне апликације, Виндовс оперативни систем, итд.

Савети за почетнике програмера

Ваш пут ће бити трновит - вреди знати прије свега. Да бисте почели да радите са неким језиком, на пример, ако је то Ц, свакако ћете морати да се упознате са Ц компилатором, а ако се не слажете с њим и не разумете његову логику, онда ће ваши пројекти заостати и летети један по један.

линије кода

Покушајте да прочитате што више књига не само о основама програмирања, већ ио историји стварања језика, тако да ћете дефинитивно почети да схватате саму суштину процеса. Покушајте да комбинујете праксу и нова знања, тако да се све памти много брже. Поред тога, покушајте да приближите свој енглески језик бар на просечан ниво, иначе ће вам бити веома тешко да се крећете кроз ИДЕ.

У закључку

Надам се да ћете, након читања овог чланка, схватити да је ово компајлер, како функционише, зашто је створен и коме још треба. Важно је подсетити да је за програмера најважније да схвати ситуацију, разуме основне принципе, тако да се надамо да вам је чланак помогао у томе.