From: fine AT mail DOT cern DOT ch ("Valery Fine") Subject: Re: Starter C compiler - Win95 17 Aug 1997 14:04:40 -0700 Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: <199708171948.VAA137866.cygnus.gnu-win32@sp068.cern.ch> Reply-To: fine AT mail DOT cern DOT ch Comments: Authenticated sender is Original-To: "Richard Thorton" , gnu-win32 AT cygnus DOT com X-Confirm-Reading-To: fine AT mail DOT cern DOT ch X-pmrqc: 1 In-reply-to: <199708151024.KAA29351@relay.technocom.net> X-mailer: Pegasus Mail for Win32 (v2.53/R1) Original-Sender: owner-gnu-win32 AT cygnus DOT com On 15 Aug 97 at 10:18, Richard Thorton wrote: > Im looking to find a C compiler to learn C. > > Is the GNU Win32 compiler a sound one to start with. I havent used > any other program apart from basic BASIC at college many years ago. > I thought C might be the place to start. > > Any help appreciated. > Try ROOT/Cint package. It includes C/C++ interpreter, plenty of graphics and Network facilities. It does make C/C++ as easy as BASIC. You welcome to visit our Web site http://root.cern.ch I've attached an abstract of CINT for your info too. With my best regards, Valery ============ Attachment follows ======================= Date sent: Sat, 09 Aug 1997 13:59:00 +0900 From: Subject: CINT book abstract To: roottalk AT root DOT cern DOT ch Here is a crude translation of my CINT book's preface. Maaharu Goto ======================================================================== PREFACE What is CINT? Computer software is used everywhere and its' importance is decisively increasing. Not only products like Personal Computers and Workstations, which are evidently sold as computers, many of the electronic devices we use in our life are controlled by microprocessors and software operating on them. Application spreads all around scientific and engineering field as well as economy, management, etc... Software is already a fundamental component in today's society. With the increasing importance of software, productivity of its' development becomes an important issue. As software is used for wider range of application, there are increasing number of occasions that software professional has to work with expert in other professional area. Excellent results can only be obtained by making the best use of both software and non-software expertise. Hence, a good programming environment to support cooperative work between software and non-software professionals is demanded. (Fig 0.1 software and non-software professionals working together) Thanks to price decrease and proliferation of personal computers, writing a small computer program is not a special skill anymore. Most of the non-software expert can write some sort of computer program. It is feasible enough that non-software professional communicates with software professional directly using computer language. It is especially important to privide such environment for C/C++ because it is the most popular programming language today. # C++ is made for the serious programmer In "The C++ Programming Language Second Edition", Dr. Bjarn Stroustrup states that "C++ is a general purpose programming language designed to make programming more enjoyable for the serious programmer." As represented in his words, existing C++ development environment focuses on professional programmer who develops serious application. Such environment is often inadequate for non-software professional who writes program only part-time. Complexity of C++ is an obstacle for a beginner, however, there are number of good books about learning C++ so that non-software professinal can learn C/C++ to his needs. What bothers us in a real-world situation is a compiler/linker problem. Long turn-around-time disturbs creative thinking. You may spend a couple of days just digging out unresolved symbols in a huge software library. It is not desirable for non-software professional to spend time on such thing. (Fig 0.2 Compiler vs Interpreter) # We need an everybody-can-use interpreter BASIC interpreter has been widely accepted by computer beginners. It is very nice if we have good interpreter environment for C/C++ too. Ease of use and short turn-around-time of the interpreter is highly appreciated by the non-software professional who makes many experimental changes in a small program. I needed C++ interpreter myself in 1990. C/C++ interpreter would have perfectly fit to my need as a bridge between software and non-software professional. There was a commercial C/C++ interpreter, but the license fee was expensive and it had substantial limitation. We also tried script languages such as Perl, but nothing fulfilled our need. I wanted to avoid making C/C++ interpreter by myself. But, without having alternative, I finally decided to undertake development of CINT C++ interpreter. The first version is created in March 1991. We immediately applied it to a running project, where we saw significant improvement on productivity and creativity. After many enhancments, in February 1996, I started to expose CINT as a free software from CERN, The European High Energy Physics Laboratory. # CINT combines benefit of interpreter and compiler CINT consists of "cint" , the C/C++ interpreter, and "makecint" , interpreter-compiler. "cint" can be used standalone as a prototyping tool or for educational purposes. But, the true merit can be obtained by using "makecint". Makecint encapsurates arbitrary C/C++ object into the interpreter as precompiled library. In existing script language environment, script and compiled code have to be written in different language and interface method between them has to be manually defined. CINT automatically makes interface method so that the interpreter and precompiled library can access each other. It provides a single language solution combining benefit of interpreter and compiler. A script which is originally developped for interpreter can later be compiled and embedded into the interpreter. Or precompiled library can temporarily be interpreted. Precompiled library can be linked together with the interpreter as archived library, or can be configured as DLL(Dynamic Link Library) which can be loaded at run time. With this feature, huge library written by software professional can be embedded into the interpreter and used easily by non-software professional. (Fig 0.3 Concept of cint/makecint) CINT operates with arbitrary ANSI C/C++ compiler. It currently works on HP-UX, Linux, Solaris, SunOS, AIX, IRIX, ALPHA-OSF, FreeBSD, NetBSD, BeBox, Windows-NT/95, MS-DOS, MacOS, Convex, etc... If you feel C++ is too difficult, you can use CINT with C compiler only. CINT has other features. Interpreter should inherently be a dynamic environment. C/C++ is defined as a compiler language, however, CINT extends its' capability without changing language definition. Source code and DLL can be loaded/unloaded at run time. C/C++ statement can be evaluated from command prompt. Security mode is introduced as an option to improve robustness issue such as memory leak and access through bad pointer. CINT is already used in many research institutes and companies. User community is rapidly growing. # How to use this book I tried to explain everything about CINT in this book. Detail usage and advanced technique will be described with many examples. Reference of all special commands and APIs are descrived so that you can make the best use of CINT. Basic information: Chapter 1. Getting started: cint, the interpreter Chapter 2. Concept and background Chapter 3. Getting started: makecint, the interpreter-compiler Advanced information: Chapter 4. Cint advanced information Chapter 5. Makecint advanced information Chapter 6. Concept of C++ script Chapter 7. Example of real-world application Reference: Appendix1. CINT keyword reference Appendix2. cint command line option Appendix3. makecint command line option Appendix4. cint debugger interface command Appendix5. Syntax limitation The first part explains basic information of using CINT. Chapter 1 describes basic information about cint interpreter Chapter 2 explains feature and concept behind it. Chapter 3 describes basic information about makecint interpreter-compiler Second part explains advanced information. Chapter 4 and 5 describes advanced feature and usage of cint and makecint. Chapter 6 explains concept of C++ script which is an idea of easy-to-use class library. Chapter 7 describes how CINT is used in real-world applications. ROOT/CINT, which is jointly developped with CERN, is a remarkable achievement. It is a new generation Object Oriented Framework. You don't need to read through every chapter. Please use "Readers hint" at the beginning of each chapter as a guide to get information quickly. # Acknowledgement I'd like to say thank you to all people who supported CINT and my activity. Junichi Mizoguchi in Hewlett-Packard Japan invented basic concept of makecint. Shirou Tsuruda has deep understanding about advanced technology and promoted CINT as a standarized productivity tool in Hewlett-Packard Japan Hachioji division. Tatsuya Saito and Hiroshi Nada gave me chances to publicly introduce CINT. Dr. Fons Rademakers, Dr. Rene Brun, Dr. Valery Fine and Dr. Andres Sandoval in CERN made great contribution to the quality and evolution of CINT. Osamu Kotanigawa in Fuji Xerox, Mr. Tomina in Nihon-Denshi-Keisan, and Dr. Otofuji in Akita University contributed porting of CINT to various computer platforms. Kiyoshi Yamamoto in CQ publishing gave me opportunity to write this book and articles in Interface magazine. Spring 1997 Masaharu Goto (gotom AT jpn DOT hp DOT com , MXJ02154 AT niftyserve DOT or DOT jp ) ================================================================= Dr. Valery Fine Telex : 911621 dubna su ----------- LCTA/Joint Inst.for NuclearRes Phone : +7 09621 6 40 80 141980 Dubna, Moscow region Fax : +7 09621 6 51 45 Russia mailto:fine AT main1 DOT jinr DOT dubna DOT su Dr. Valeri Faine ------------ Phone: +41 22 767 6468 CERN FAX : +41 22 767 7910 CH-1211 Geneva, 23 mailto:fine AT mail DOT cern DOT ch Switzerland http://nicewww.cern.ch/~fine - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".