Tuesday, April 12, 2011

Which compiler to use? / Qual compilador utilizar?

On this post we talk about the C Compilers we can use. In the next posts, we are going to use MinGW, MS Visual C++ and MS Visual C#
Neste post falamos sobre os compiladores C. Nas postagens futuras utilizaremos MinGW, MS Visual C++ e MS Visual C#.

Descer até português

There are several C compilers.

Here is a list of compilers.

On these initial steps we will use the Tinny C, or simply TCC.
We'll comment on, among others, DevC, GCC, Visual C and C Builder.

The free compiler, like TCC, are good option for students and amateurs. But for production, one should choose to professional environments with more options, such as C Builder.

The C language tries to be compatible across platforms. A windows application will NOT work in Linux and, similarly, a Linux executable will NOT work in windows. But the source code typed in one plataform could be compiled in another platform. We have standards like ISO C99 and ANSI standards, but, actally no compiler follow then strictly .

There is a group of routines that every compiler must have, called the standard library. A source code using this routines could be compiled in any platform.

But the compiler developers use to add their own routines to make the production easier and faster. If a source code uses a special routine from a compiler, it could not be compiled with another compiler. For example, a source code using the .NET library of MS Visual C++ will not compile in GCC for linux.

We will see ahead we can use compiler directives to help the development to more than one platforms.

Note in 17/4/2011 08:03:33: the DevC and TCC projects were descontinued, so we changed planes and we are going to use MinGW in some posts. After it we will use MS Visual C++ and MS Visual C#.

Português
Existem diversos compiladores C que podemos usar.

Aqui temos uma lista de compiladores.

Aos poucos vamos comentar alguns.

Nestes passos iniciais vamos utilizar o Tinny C, ou simplesmente TCC.
Vamos, comentar, entre outros, DevC, o GCC, o Visual C++ e o C++ Builder.

Os gratuitos como o TCC são uma boa opção para estudantes e amadores. Mas para a produção, um profissional deve lançar mão de ambientes com mais opções, como o C++ Builder.

O C tenta ser compativel entre plataformas. Um executavel feito em windows NÃO vai funcionar no linux e, da mesma forma, um executável do linux NÃO vai funcionar no windows. Mas o arquivo fonte que for compilado num compilador windows tem que poder ser compilado num compilador para linux.

Para isto tenta-se criar padrões da linguagem. Temos padrões ISO como o C99 e padrões ANSI. Na verdade nenhum fabricante de compiladores segue a risca os padrões.

Cada fabricante de compilador cria acessórios à biblioteca padrão para vender o seu peixe como a Borland que tem uma biblioteca que é o paraíso do programador. Outros fabricantes colocam mais itens na biblioteca para tornar mais fácil o acesso ao sistema operacional. É o caso da Microsoft que colocou no Visual C++ todo um suporte para .NET, suporte este que não existe no GCC por exemplo.

Então se um programador sabe que o seu código fonte vai ser compilado em plataformas diferentes tem que planejar o desenvolvimento ja pensando nisto.

Adiante veremos que usando diretivas do compilador podemos tornar o processo de compilação mais versátil.

Edit em 17/4/2011 08:03:33:
O DevC e o TCC foram descontinuados então mudamos os planos. Usaremos inicialmente o MinGW. Depois o MS Visual C++ e o MS Visual C#.

No comments: