Free Educational Resource Center for teachers and students. Includes Interviews,
Sourcecode, Free Software, Research Papers, Articles, Tutorials and much more..
     R E S E A R C H A C T I V I T Y . C O M
Our Fellow Research Center for Ph.D Schollars
Home About Submit & Earn Archives: C And C + + Programming » Dev Packages » Interviews » Php Mysql Programming » Windows Programming
search
Interviews > fabrice bellard



Fabrice bellard is one of few young researchers who have experimented extensively on compiler construction & signal processing as well as provided a lot of research free of cost for educational purposes. Mr. Fabrice is author of Fastest ANSI C compiler called TCC (for windows and linux) as well as very well known video conversion tool FFMPEG. Mr. Fabrice is working on Signal Processing these days; he has been taking part in very tough coding competetions such as "International Obfuscated C Code Contest". When talking about his hobbies we could not find much information that tells about his hibbies other than programming and research.



Interview with Mr.Fabrice Bellard


Q. For how long you have been programming, and what is your favorite language to program in?


A.I have been programming since 27 years. My favorite language is C.



Q. Your current job description / organization, if you wish to share with us.


A.I am involved in signal processing projects.


Q. Why and how the idea of constructing yet another C compiler came to your mind?


A.Originally the goal was to make the smallest C compiler able to compile itself (OTCC project). I won the "International Obfuscated C Code Contest" (IOCCC) with it. After that, I decided to improve it to handle a larger subset of the C language, which gave the TCC project.


Q. For a beginner and moderate level developer who just knows general programming has nothing to do with compiler construction (in general), how would you answer when asked about the excellent speed of your TCC compiler? I mean readers would love if you put some light on TCC's architecture, and how it is that fast comparing any other ANSI C compiler?


A.Its parser is hand coded. The data structures used to store the parsed C program are also optimized. The code is kept small and simple. Another important point is that almost no generated code optimization is done, so its speed cannot be fairly compared with a C compiler with all optimizations enabled.


Q. Do you plan to compete market standards with this new discovery (TCC)? After all, TCC is becoming very popular among the programmers who have real concern with compilation / linkage time and final binary size.


A.I don't plan to work any more on TCC, but other programmers seem interested. I think it is very difficult to improve TCC because it has no intermediate structure to represent the program. As such, I consider it as a toy compiler, or an experiment, but not something really usable.

If I had to write again something similar, I would sacrifice some speed (but not much) to add an intermediate representation and a simple code optimizer.


Q. As far review of a normal programmer, TCC would stand "The Best" if you plan to add C++ support, or may be manage to program a translator that translates C++ to C before compiling. Do you have any such plan for the future of TCC?


A.No plan, at least for C++ because writing a C++ compiler is *really* difficult due to the numerous bloats introduced in the language.

I would prefer adding a "Javscript mode" to the C compiler.


Q. Does TCC support gcc / mingw specific archive files (.a static libraries) linking? and vice versa can TCC produce static libraries for mingw and gcc?


A.For Linux, TCC supports the GCC (ELF) library and object formats. For Windows, TCC only supports the executable and DLL formats. The library and object formats are still ELF (=Linux) based.


Q. Where do you see the TCC standing in the race of C compilers?


A.It is just an experiment. The objectives were to have the smallest self compiling environment. The compilation speed is a consequence of the small size of the code of the compiler.


Q. Where should a beginner / moderate level developer start willing to study compiler construction?


A.They should follow the corresponding courses at school (as I did !). There are many good books on the subject (e.g.: Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools).

But TCC is really not an example to follow :-)


Q. We read about your other free and most popular program FFMPEG. Why did you code a 100% free software when there was a big need of such thing at the time you launched it? you could market it perfectly.


A.I think such basic technology must stay free. In particular, I wanted to be able to see any video with an open source tool. I am now happy to see that FFMPEG (and all the programs which use it) allows that !


Q. You have worked on yet another graphic library called TinyGL, when was the last time your worked on it? Every programmer is interested in libraries leaving very small footprints over final binary executable.


A.I worked on it a long time ago ! More recently I worked on a vector 2D library with a similar small footprint, but I did not find the time to make it public.


Q. You might have noticed that FFMPEG has been used in a lot of commercial applications, what is your review on companies and individuals using FFMPEG as back-bone of their application, but yet not providing even a single word of credit to FFMPEG.


A.Due to the licensing of FFMPEG, they must at least say they use it and provide the code they modified, if any. The current FFMPEG team does a good job by maintaining a list of the companies not complying with the FFMPEG license.


Q. You have worked on too many projects, we want to discuss all of them but as per your time constraints, please tell us some about your "Analog and Digital TV (DVB-T) signal" project.


A.The project consisted in generated radio frequency signals by displaying a specific image on a PC monitor. It works because the cables from the PC to the monitor leak some signal which can be received by a radio receiver. The idea was not new, but before I did it it had been demonstrated with very basic signals such as Short wave radio ones.

My demonstration consisted in emitting a real digital TV signal which could be received with a standard DVB-T receiver (DVB-T is the European standard for Terrestrial Digital Television). The user just has to display an image on the PC.

This project inspired commercial projects and I am still working on them.


Q. What other projects you have worked on? sokme brief description if you may provide sir? and what is your most favorite area of work, I mean is it compiler construction or anything else?


A.My favorite area of work tends to change every few years. My recent interests where in emulation and virtualization (with the QEMU project), in signal processing (like the DVB-T generator) and in computer arithmetic (i.e. doing computations on large numbers).


Q. If we may ask you age sir?


A. 37.



Q. You like to take part in competitions, how many competitions you got into and won? (of course regarding coding)


A.Just the IOCCC contest, twice.



Q. Any hobbies other than your usual programming work?

A.When did you feel you must have a personal portfolio (bellard.org http://bellard.org), and when was this site formed?


I began it when I was in the university (1996). Perhaps one day I will spend some time to update it !



Thank your for your time Mr.Bellard.