GCC

Software screenshot:
GCC
Podrobnosti Software:
Verze: 8.2.0 Aktualizováno
Datum uploadu: 16 Aug 18
Vývojka: The GCC Team
Licence: Volný
Popularita: 108

Rating: 3.0/5 (Total Votes: 3)

GCC (GNU Compiler Collection) je software otevřeného zdrojového příkazového řádku navržený tak, aby fungoval jako kompilátor pro operační systémy GNU / Linux a BSD. Obsahuje front-end pro četné programovací jazyky, včetně objektů C, Go, C ++, Java, C, Ada a Fortran.


Funkce na první pohled

S GCC můžete nakonfigurovat, kompilovat a instalovat GNU / Linuxové aplikace v operačních systémech Linux nebo BSD, a to pouze pomocí zdrojového archivu příslušného programu. Uživatelé však nemusejí spolupracovat s překladačem, protože se to dělá automaticky pomocí konfigurace a vytváření skriptů.

Projekt také obsahuje knihovny pro různé programovací jazyky, jako je libstdc a libgcj, a stejně jako většina GNU softwaru, musí být nakonfigurována ještě předtím, než bude možné jej postavit a nainstalovat do počítače.

Může také zobrazit úplnou cestu ke konkrétní knihovně, složky ve vyhledávací cestě kompilátoru, úplná cesta k určité komponentě, adresář cílových knihoven, přípona sysroot, která se používá k nalezení záhlaví a normalizovaný GNU triplet.

Kromě toho existují různé další možnosti pro předávání některých možností a argumentů oddělených čárkami na assembleru, preprocesoru a linkeru, kompilaci a sestavení bez propojení, vytvoření sdílené knihovny a mnoha dalších.


Určeno pro operační systém GNU

Původně byl napsán jako hlavní kompilátor pro operační systém GNU, GCC (GNU Compiler Collection) byl vyvinut jako 100% svobodný software a je instalován ve výchozím nastavení na jakékoli distribuci Linuxu.

Software je také používán vývojáři Open Source ke kompilaci jejich programů. Příkazový řádek obsahuje několik možností, mezi nimiž lze uvést schopnost zobrazit cílový procesor kompilátoru a relativní cestu k knihovnám OS.


Dolní řádek

Celkově je GCC jednou z nejdůležitějších součástí libovolného operačního systému GNU / Linux. Nejen, že si dokážeme představit svět bez něj, ale GCC je hlavním důvodem celého ekosystému Open Source.

Co je nového v této verzi:

  • GCC 7.3 je verze opravy chyb z větve GCC 7 obsahující důležité opravy pro regrese a vážné chyby v GCC 7.2 s více než 99 bugy opravenými od předchozí verze.
  • Toto vydání obsahuje možnosti generování kódu pro zmírnění spektra Spektra 2 (CVE 2017-5715) pro cíle x86 a powerpc.

Co je nového ve verzi 8.1.0:

  • Větev GCC 7 obsahuje důležité opravy pro regrese a vážné chyby v GCC 7.2 s více než 99 bugy opravenými od předchozí verze.
  • Toto vydání obsahuje možnosti generování kódu pro zmírnění spektra Spektra 2 (CVE 2017-5715) pro cíle x86 a powerpc.

Co je nového ve verzi:

  • GCC 7.1 je hlavní vydání obsahující podstatné nové funkce, které nejsou k dispozici v GCC 6.x nebo v předchozích verzích GCC. C ++ frontend nyní má experimentální podporu pro celý aktuální návrh C ++ 17 s možnostmi -std = c ++ 1z a -std = gnu ++ 1z a knihovna libstdc ++ má většinu návrhu C ++ 17 knihovní funkce jsou implementovány. Toto vydání obsahuje různé vylepšení vyzařované diagnostiky, včetně vylepšených umístění, rozsahů umístění, návrhů pro nesprávně napsané identifikátory, názvy voleb, rady pro opravu a různé nové varování. Optimalizátory byly vylepšeny a vylepšení se objevují ve všech intra- a inter-procedurálních optimalizacích, optimalizacích časových vazeb a různých cílových backendech, včetně, ale bez omezení, přírůstků fúzí, ukládání kódů, optimalizace zvedání kódu, rozdělení smyček a zmenšení zlepšení balení. Adresa Sanitizer nyní může nahlašovat použití proměnných po opuštění jejich rozsahu. GCC je nyní možné nakonfigurovat pro ukládání do OpenMP 4.5 na NVidia PTX GPGPUs.

Co je nového ve verzi 6.3.0:

  • GCC 6.3 je verze opravy chyb z větve GCC 6 obsahující důležité opravy pro regrese a vážné chyby v GCC 6.2 s více než 79 bugy opravenými od předchozí verze.

Co je nového ve verzi 6.2.0:

  • Toto vydání je verze opravy chyb, která obsahuje opravy pro regrese v GCC 5.2 ve srovnání s předchozími verzemi GCC.

Co je nového ve verzi 6.1.0:

  • Toto vydání je verze opravy chyb, která obsahuje opravy pro regrese v GCC 5.2 ve srovnání s předchozími verzemi GCC.

Co je nového ve verzi 5.3.0:

  • Toto vydání je verze opravy chyb, která obsahuje opravy pro regrese v GCC 5.2 ve srovnání s předchozími verzemi GCC.

Co je nového ve verzi 5.2.0:

  • Toto vydání je verze opravy chyb, která obsahuje opravy pro regrese v GCC 5.1 ve srovnání s předchozími verzemi GCC.

Co je nového ve verzi 5.1.0:

  • Přední konec jazyka C ++ má nyní úplnou podporu jazyka C ++ 14 a knihovna Standard C ++ má plnou podporu C ++ 11 a úplnou podporu C ++ 14. Plná podpora C ++ 11 byla umožněna přijetím Dual ABI, viz https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html pro další podrobnosti.
  • Přednastavení C nyní nyní nastavuje režim C11 s rozšířeními GNU, což ovlivňuje sémantiku klíčového slova inline a přináší několik dalších změn viditelných pro uživatele, viz https://gcc.gnu.org/gcc-5/porting_to.html pro více podrobností.
  • GCC 5.1 obsahuje různé vylepšení mezi jednotlivými procesy, např. nový IPA Identický kód Skládací průchod a různé vylepšení LTO, např. ODL založené na sloučení typů C ++, viz http://hubicka.blogspot.cz/2015/04/GCC5-IPA-LTO-news.html pro další podrobnosti.
  • GCC 5.1 Místní registrující alokátor nyní obsahuje přepisovací podmnožinu, na i? 86 / x86-64 je schopen znovu použít hardwarový registr PIC pro zlepšení výkonu kódu nezávislého na poloze, existuje jednoduchý průsvitný průkaz RA a různé další registru bylo přidáno zlepšení přidělení.
  • GCC 5.1 přidává částečnou oporu pro OpenACC standard, podporu pro OpenMP 4.0 vykládku do nadcházejících akcelerátorů Intel Xeon Phi a podporu pro OpenACC downloading do PTX. Sanitizer nedefinovaného chování v GCC byl rozšířen přidáním různých nových runtime kontrol. V GCC 5.1 byla přidána experimentální knihovna GCC JIT

Co je nového ve verzi 4.8.4:

  • Vylepšení obecného optimalizátoru:
  • AdresářSanitizer, rychlý detektor chyb paměti, je nyní k dispozici na ARM.
  • UndefinedBehaviorSanitizer (ubsan), rychlý nedefinovaný detektor chování, byl přidán a lze jej povolit pomocí -fsanitize = undefined. Různé výpočty budou vybaveny k detekci nedefinovaného chování při běhu. NedefinovanýBehaviorSanitizer je v současné době k dispozici pro jazyky C a C ++.
  • Vylepšení propojení časové optimalizace (LTO):
  • Typ překladu byl přepisován. Nová implementace je výrazně rychlejší a využívá méně paměti.
  • Lepší algoritmus rozdělování, který má za následek menší tok dat během spojení.
  • Včasné odebrání virtuálních metod snižuje velikost souborů objektů a zlepšuje využití paměti spojů a čas kompilace.
  • Funkční tělesa jsou nyní načteny na vyžádání a uvolněny brzy ke zlepšení celkové paměti v době spojení.
  • Klíčové metody C ++ lze nyní optimalizovat.
  • Když použijete plugin linkeru, kompilace s volbou -flto nyní vytváří štíhlé objekty (.o), které obsahují pouze LTO. Použijte -ffat-lto-objekty k vytvoření souborů, které obsahují dodatečně objektový kód. Chcete-li generovat statické knihovny vhodné pro zpracování LTO, použijte gcc-ar a gcc-ranlib; pro zobrazení symbolů z tenkého souboru objektu použijte gcc-nm. (To vyžaduje, aby ar, ranlib a nm byly kompilovány s podporou pluginů.)
  • Použití paměti v paměti Firefox s povoleným laděním se snížil z 15 GB na 3,5 GB; čas spojení od 1700 sekund do 350 sekund.
  • Vylepšení optimalizace mezi procesy:
  • Modul pro analýzu dědičnosti nového typu, který zlepšuje devirtualizaci. Devirtualizace nyní bere v úvahu anonymní jmenné prostory a klíčové klíčové slovo C ++ 11.
  • Nový speculativní devirtualizační průchod (řízený -fdevirtualize-speculatively.
  • Volání, která byla spekulantně přímá, jsou obrácená zpět na nepřímé, pokud přímý hovor není levnější.
  • Lokální aliasy jsou zavedeny pro symboly, o nichž je známo, že jsou sémanticky ekvivalentní ve sdílených knihovnách, což zlepšuje dynamické vazby.
  • Vylepšení optimalizace zaměřená na zpětnou vazbu:
  • Profilování programů využívajících funkce C ++ inline je nyní spolehlivější.
  • Nové profilování času určuje typický pořadí, ve kterém jsou funkce prováděny.
  • Nová funkce pro přesměrování průchodů (řízená funkcemi -frekvenční) významně snižuje dobu spouštění velkých aplikací. Dokud není dokončena podpora binutils, je účinná pouze při optimalizaci odkazových časů.
  • Odmítnutí nepřímého volání a devirtualizace nyní řídí křížové moduly, když je povolena optimalizace odkazových časů.
  • Vylepšení specifických pro nové jazyky a jazyky:
  • Verze 4.0 specifikace OpenMP je nyní podporována v kompilátorech C a C ++ a počínaje verzí 4.9.1 také v kompilátoru Fortran. Nová volba -fopenmp-simd může být použita pro povolení směrovacích směrnic OpenMP, zatímco ignoruje jiné směrnice OpenMP. Nová volba -fsimd-cost-model = umožňuje vyladit model nákladového vektorizačního modelu pro smyčky označené směrnicemi OpenMP a Cilk Plus simd; -Wopenmp-simd varuje, když aktuální model nákladů přepíše simd direktivy nastavené uživatelem.
  • Pro kompilátory C, C ++ a Fortran byla přidána možnost -Wed-time, která varuje při použití maker __DATE__, __TIME__ nebo __TIMESTAMP__. Tato makra mohou zabránit reprodukovatelným kompilacím, které jsou shodné s bitu.
  • Ada:
  • Ve výchozím nastavení byl GNAT přepnut na Ada 2012 namísto Ada 2005.
  • C rodina:
  • Byla přidána podpora pro diagnostiku barev, která byla vydána GCC. -Fdiagnostics-color = auto povolí při výstupu na terminály, -fdiagnostics-color = vždy bezpodmínečně. Proměnná prostředí GCC_COLORS lze použít k přizpůsobení barev nebo zakázání barvení. Pokud je v prostředí přítomna proměnná GCC_COLORS, výchozí je -fdiagnostics-color = auto, jinak -fdiagnostics-color = nikdy.
  • Ukázka diagnostiky vzorku:
  • $ g ++ -fdiagnostics-color = vždy -S -Wall test.C
  • test.C: Funkce & lsquo; int foo () ':
  • test.C: 1: 14: varování: žádný příkaz return nevrací funkci nevráceného typu [-Wreturn]
  • int foo () {}
  • test.C: 2: 46: chyba: hloubka vytváření instancí šablony překračuje maximálně 900 (použijte -ftemplate-hloubka = zvýšit maximální) instanciování & lsquo; struct X '
  • struktura šablony X {statická hodnota const int = hodnota X; }; šablona struct X;
  • test.C: 2: 46: rekurzivně požadovaný z & const; int X :: hodnota '
  • test.C: 2: 46: požadováno od & const> int int X :: hodnota '
  • test.C: 2: 88: požadováno odtud
  • test.C: 2: 46: chyba: nekompletní typ & lsquo; X 'použitý v zadaném specifikátoru názvu
  • Pomocí nového modulu #pragma GCC ivdep může uživatel tvrdit, že neexistují závislosti nesené smyčkami, které by zabrá- nily souběžnému provádění po sobě jdoucích opakování pomocí instrukcí SIMD (více instrukcí s více instrukcemi).
  • Podpora pro Cilk Plus byla přidána a může být povolena s volbou -fcilkplus. Cilk Plus je rozšířením jazyků C a C ++, které podporují paralelismus dat a úkolů. Tato implementace vychází z ABI verze 1.2; všechny funkce, ale _Cilk_for byly implementovány.
  • Nyní je podporována atomová skupina ISO C11 (specifikátor typu _Atomický typ a kvalifikátor a hlavička)
  • Generické volby ISO C11 (_Generické klíčové slovo) jsou nyní podporovány.
  • Nyní je podporováno lokální uložení ISO C11 (_Thread_local, podobně jako GNU C __thread).
  • Podpora ISO C11 má nyní podobnou úroveň úplnosti k podpoře ISO C99: v podstatě kompletní modulo chyby, rozšířené identifikátory (podporují se s výjimkou rohových případů, kdy se používají identifikátory bez použití), s plovoucí čárou (hlavně, ale ne zcela týkající se doplňkových prvků C99 z příloh F a G) a volitelných příloh K (vazebné rozhraní) a L (analyzovatelnosti).
  • Nové rozšíření C __auto_type poskytuje podmnožinu funkcí C ++ 11 auto v GNU C.
  • C ++:
  • Implementace G ++ pro odečtení návratového typu C ++ pro normální funkce byla aktualizována tak, aby odpovídala N3638, návrh byl přijat do pracovního dokumentu. Nejvíce pozoruhodně přidává dectype (auto) pro získání sémantiky typu decltype spíše než sémantiku srážek argumentů šablon čistého auto:
  • int & amp; f ();
  • auto i1 = f (); // int
  • decltype (auto) i2 = f (); // int & amp;
  • G ++ podporuje inicializátory C ++ 1y lambda capture:
  • [x = 42] {...};
  • Ve skutečnosti byly přijaty od GCC 4.5, ale nyní kompilátor o nich neohlásí s -std = c ++ 1y a podporuje také inicializátory uzavřené v závorce a závorky.
  • G ++ podporuje pole C ++ 1y s proměnnou délkou. G + + podporuje dlouhotrvající VLA ve stylu GNU / C99, ale nyní navíc podporuje odkazy na inicializátory a zachycení lambda. V režimu C ++ 1y se G ++ stěžuje na použití VLA, které nejsou povoleny standardem návrhu, jako je vytvoření ukazatele na typ VLA nebo použití velikosti proměnné VLA. Všimněte si, že nyní se zdá, že VLA nebudou součástí C ++ 14, ale budou součástí samostatného dokumentu a možná i C ++ 17.
  • neplatný f (int n) {
  • int a [n] = {1, 2, 3}; // hodí std :: bad_array_length pokud n < 3
  • [& amp;] {pro (int i: a) {cout

Co je nového ve verzi 4.9.1:

  • GCC 4.9.1 je verze opravy chyb z větve GCC 4.9 obsahující důležité opravy pro regrese a vážné chyby v GCC 4.9.0 s více než 88 chybami opravenými od předchozí verze. Navíc verze GCC 4.9.1 podporuje OpenMP 4.0 také ve Fortranu, spíše než v C a C ++.

Co je nového ve verzi 4.9.0:

  • Vylepšení obecného optimalizátoru:
  • AdresářSanitizer, rychlý detektor chyb paměti, je nyní k dispozici na ARM.
  • UndefinedBehaviorSanitizer (ubsan), rychlý nedefinovaný detektor chování, byl přidán a lze jej povolit pomocí -fsanitize = undefined. Různé výpočty budou vybaveny k detekci nedefinovaného chování při běhu. NedefinovanýBehaviorSanitizer je v současné době k dispozici pro jazyky C a C ++.
  • Vylepšení propojení časové optimalizace (LTO):
  • Typ překladu byl přepisován. Nová implementace je výrazně rychlejší a využívá méně paměti.
  • Lepší algoritmus rozdělování, který má za následek menší tok dat během spojení.
  • Včasné odebrání virtuálních metod snižuje velikost souborů objektů a zlepšuje využití paměti spojů a čas kompilace.
  • Funkční tělesa jsou nyní načteny na vyžádání a uvolněny brzy ke zlepšení celkové paměti v době spojení.
  • Klíčové metody C ++ lze nyní optimalizovat.
  • Při použití pluginu linker kompilace s volbou -flto nyní vytváří štíhlé objekty (.o), které obsahují pouze LTO. Použijte -ffat-lto-objekty k vytvoření souborů, které obsahují dodatečně objektový kód. Chcete-li generovat statické knihovny vhodné pro zpracování LTO, použijte gcc-ar a gcc-ranlib; pro zobrazení symbolů z tenkého souboru objektu použijte gcc-nm. (Vyžaduje, aby ar, ranlib a nm byly kompilovány s podporou pluginu)
  • Použití paměti v paměti Firefox s povoleným laděním se snížil z 15 GB na 3,5 GB; čas spojení od 1700 sekund do 350 sekund.
  • Vylepšení optimalizace mezi procesy:
  • Modul pro analýzu dědičnosti nového typu, který zlepšuje devirtualizaci. Devirtualizace nyní bere v úvahu anonymní jmenné prostory a klíčové klíčové slovo C ++ 11.
  • Nový speculativní devirtualizační průchod (řízený -fdevirtualize-speculatively.
  • Volání, která byla spekulantně přímá, jsou obrácená zpět na nepřímé, pokud přímý hovor není levnější.
  • Lokální aliasy jsou zavedeny pro symboly, o nichž je známo, že jsou sémanticky ekvivalentní ve sdílených knihovnách, což zlepšuje dynamické vazby.
  • Vylepšení optimalizace zaměřená na zpětnou vazbu:
  • Profilování programů využívajících funkce C ++ inline je nyní spolehlivější.
  • Nové profilování času určuje typický pořadí, ve kterém jsou funkce prováděny.
  • Nová funkce pro přesměrování průchodů (řízená funkcemi -frekvenční) významně snižuje dobu spouštění velkých aplikací. Dokud není dokončena podpora binutils, je účinná pouze při optimalizaci odkazových časů.
  • Odmítnutí nepřímého volání a devirtualizace nyní řídí křížové moduly, když je povolena optimalizace odkazových časů.
  • Vylepšení specifických pro nové jazyky a jazyky:
  • Pro kompilátory C a C ++ je nyní podporována verze 4.0 specifikace OpenMP. Nová volba -fopenmp-simd může být použita pro povolení směrovacích směrnic OpenMP, zatímco ignoruje jiné směrnice OpenMP. Nová volba -fsimd-cost-model = umožňuje vyladit model nákladového vektorizačního modelu pro smyčky označené směrnicemi OpenMP a Cilk Plus simd; -Wopenmp-simd varuje, když aktuální model costmodel přepsá simd direktivy nastavené uživatelem.
  • Pro kompilátory C, C ++ a Fortran byla přidána možnost -Wed-time, která varuje při použití maker __DATE__, __TIME__ nebo __TIMESTAMP__. Tato makra mohou zabránit reprodukovatelným kompilacím, které jsou shodné s bitu.
  • Ada:
  • Ve výchozím nastavení byl GNAT přepnut na Ada 2012 namísto Ada 2005.
  • C rodina:
  • Byla přidána podpora pro diagnostiku barev, která byla vydána GCC. -Fdiagnostics-color = auto povolí při výstupu na terminály, -fdiagnostics-color = vždy bezpodmínečně. Proměnná prostředí GCC_COLORS lze použít k přizpůsobení barev nebo zakázání barvení. Pokud je v prostředí přítomna proměnná GCC_COLORS, výchozí je -fdiagnostics-color = auto, jinak -fdiagnostics-color = nikdy.
  • Ukázka diagnostiky vzorku:
  • $ g ++ -fdiagnostics-color = vždy -S -Wall test.C
  • test.C: Funkce & lsquo; int foo () ':
  • test.C: 1: 14: varování: žádný příkaz return nevrací funkci nevráceného typu [-Wreturn]
  • int foo () {}
  • test.C: 2: 46: chyba: hloubka vytváření instancí šablony překračuje maximálně 900 (použijte -ftemplate-hloubka = zvýšit maximální) instanciování & lsquo; struct X '
  • struktura šablony X {statická hodnota const int = hodnota X; }; šablona struct X;
  • test.C: 2: 46: rekurzivně požadovaný z & const; int X :: hodnota '
  • test.C: 2: 46: požadováno od & const> int int X :: hodnota '
  • test.C: 2: 88: požadováno odtud
  • test.C: 2: 46: chyba: nekompletní typ & lsquo; X 'použitý v zadaném specifikátoru názvu
  • Pomocí nového modulu #pragma GCC ivdep může uživatel tvrdit, že neexistují závislosti nesené smyčkami, které by zabrá- nily souběžnému provádění po sobě jdoucích opakování pomocí instrukcí SIMD (více instrukcí s více instrukcemi).
  • Podpora pro Cilk Plus byla přidána a může být povolena s volbou -fcilkplus. Cilk Plus je rozšířením jazyků C a C ++, které podporují paralelismus dat a úkolů. Tato implementace vychází z ABI verze 1.2; všechny funkce, ale _Cilk_for byly implementovány.
  • Nyní je podporována atomová skupina ISO C11 (specifikátor typu _Atomický typ a kvalifikátor a hlavička)
  • Generické volby ISO C11 (_Generické klíčové slovo) jsou nyní podporovány.
  • Nyní je podporováno lokální uložení ISO C11 (_Thread_local, podobně jako GNU C __thread).
  • Podpora ISO C11 má nyní podobnou úroveň úplnosti k podpoře ISO C99: v podstatě kompletní modulo chyby, rozšířené identifikátory (podporují se s výjimkou rohových případů, kdy se používají identifikátory bez použití), s plovoucí čárou (hlavně, ale ne zcela týkající se doplňkových prvků C99 z příloh F a G) a volitelných příloh K (vazebné rozhraní) a L (analyzovatelnosti).
  • Nové rozšíření C __auto_type poskytuje podmnožinu funkcí C ++ 11 auto v GNU C.
  • C ++:
  • Implementace G ++ pro odečtení návratového typu C ++ pro normální funkce byla aktualizována tak, aby odpovídala N3638, návrh byl přijat do pracovního dokumentu. Nejvíce pozoruhodně přidává dectype (auto) pro získání sémantiky typu decltype spíše než sémantiku srážek argumentů šablon čistého auto:
  • int & amp; f ();
  • auto i1 = f (); // int
  • decltype (auto) i2 = f (); // int & amp;
  • G ++ podporuje inicializátory C ++ 1y lambda capture:
  • [x = 42] {...};
  • Ve skutečnosti byly přijaty od GCC 4.5, ale nyní kompilátor o nich neohlásí s -std = c ++ 1y a podporuje také inicializátory uzavřené v závorce a závorky.
  • G ++ podporuje pole proměnné délky C ++ 1y. G + + podporuje dlouhotrvající VLA ve stylu GNU / C99, ale nyní navíc podporuje odkazy na inicializátory a zachycení lambda. V režimu C ++ 1y se G ++ stěžuje na použití VLA, které nejsou povoleny standardem návrhu, jako je vytvoření ukazatele na typ VLA nebo použití velikosti proměnné VLA. Všimněte si, že nyní se zdá, že VLA nebudou součástí C ++ 14, ale budou součástí samostatného dokumentu a možná i C ++ 17.
  • neplatný f (int n) {
  • int a [n] = {1, 2, 3}; // hodí std :: bad_array_length pokud n < 3
  • [& amp;] {pro (int i: a) {cout

Podobný software

daot
daot

11 May 15

CodeViz
CodeViz

3 Jun 15

Polygen
Polygen

3 Jun 15

Komentáře k GCC

1 Komentáře
  • http://www.eduwizzonlinetrainings.com 29 Dec 17
    EduwizzOnlineTraining is one of the Best Online Training Institute in Hyderabad, Bangalore. Eduwizz provide courses like Hybris Development, WebSphere Commerce Server,Blockchain Training,Hyperledger Fabric Development ,Ethereum Development ,Commvault Training, Devops , Netapps , Mulesoft ESB ,Machine Learning,Data Science , Internet of Things , Hybris ,Angular JS , Node JS , Express JS , Business Analyst, Selenium testing with webdriver, Guidewire ,Adobe, RPA ,TSM, EMC...etc
Přidat komentář
Zapnout obrázky!