Columns


CUG Product Focus

Bison++/Flex++ Update, SaltSoft Tools, LIBFTP, and RasMol

Victor R. Volkman


Victor R. Volkman received a BS in Computer Science from Michigan Technological University. He has been a frequent contributor to C/C++ Users Journal since 1987. He is currently employed as Senior Analyst at H.C.I.A. of Ann Arbor, Michigan. He can be reached by dial-in at the HAL 9000 BBS (313) 663-4173 or by Usenet mail to sysop@hal19k.com.

Update to CUG #404 & 405, Bison++ & Flex++

In the May 1994 issue of CUJ we announced the availability of Bison++ and Flex++, developed by Alain Cotmeur of Informatique-CDC (Arcueil, France). Bison++ is derived directly from GNU Bison, the popular replacement for the UNIX utility yacc. Likewise, Flex++ is derived directly from GNU Flex, the popular replacement for the UNIX utility lex. Mr. Cotmeur has graciously provided updated versions of these tools to the CUG library. We have now updated CUG #404 to Bison++ version 1.21-8, replacing version 1.21-7; and we've updated CUG #405 to Flex++ version 2.3.8-7, replacing version 2.3.8-6. According to Cotmeur, these latest versions are quite stable and have been used for a long time in different products at Informatique-CDC. These new versions are immediately available as CUG #404 & #405.

New Acquistions

CUG 416: SaltSoft Tools

Nigel Salt (Crayford, Kent, U.K.) contributes a variety of stand-alone tools and libraries with C source code for MS-DOS. This is the first time source code for many of these tools has been released. Some of the programs are written specifically for Borland Turbo C while others are intended for use with Microsoft C (MSC). All programs are shareware with reasonable registration fees ($15 or less) or donationware (whatever you feel is appropriate). The CUG Library distribution includes the following programs in both source and executable format:

Additionally, the CUG Library distribution includes other SaltSoft applications in MS-DOS executables without source:

The entire SaltSoft distribution (as released on 02/16/94) is immediately available on a single diskette as volume #416 in the CUG Library.

CUG 417: LIBFTP

Oleg Orel (Institute for High Energy Physics, Protvino, Russia) presents his LIBFTP TCP/IP library. LIBFTP provides an easy-to-call interface between UNIX programs and FTP servers. The FTP (or File Transfer Protocol) is the protocol of choice for transferring files over the Internet. You could use this library to write your own FTP client with a graphical user interface or perhaps as the basis of a file-mirroring utility. LIBFTP works with most popular UNIX systems but cannot work with MS-DOS.

LIBFTP provides a full suite of functions which allow multiple FTP channels to be open simultaneously. A stream level interface allows for reading and writing using many popular stream functions, such as fgetc. Additionally, LIBFTP allows you to ask for directories to be created on the FTP server, as well as both sending and receiving files.

LIBFTP includes a ten-page User's Guide describing each of the function calls available. The documentation is provided in both English and Russian language versions. Each language version appears in both TEX and PostScript printable format.

LIBFTP provides two very small examples that you can use to check out the library. FCP.C copies a file between two FTP servers in stream mode (without opening intermediate files). GET.C uses a simple command-line interface to fetch a single file and then hangup the FTP connection.

This distribution provides all C source code; you can compile it with GNU C or any compatible ANSI C compiler.

LIBFTP (as released on 10/28/93) is immediately available as CUG #417.

CUG 418: RasMol Molecular Graphics

Roger Sayle (Dept. of Computer Science, University of Edinburgh, U.K.) contributes his molecular graphics visualization system for UNIX X-Window and MS-Windows. RasMol is specifically intended for the visualisation of proteins and nucleic acids. RasMol reads Brookhaven Protein Databank (PDB) fries and interactively renders them in a variety of formats, on either an 8-bit or 24- to 32-bit color display. Documentation includes on-line help, hypertext documentation, and the previous (dated) version of the PostScript user reference manual.

RasMol is intended for teaching and for generating publication-quality images. The program has both a menu system and a full-featured commandline interface. RasMol allows different parts of a molecule to be displayed in a number of formats, colors, and representations independently. Currently supported formats include wireframe, ball and stick, backbone, space-filling spheres, and solid or strands ribbon models. (RasMol will even create shadows for the space-filling spheres.) You can manipulate a molecule with the mouse, the scroll bars, the interactive command line, or from a dials box (if one is attached). You can save the resulting image at any point, in PostScript, GIF, PPM, Sun rasterfile, or Microsoft BMP formats. On a SparcStation, RasMol can shadow a 10,000-atom space-filling protein in less than ten seconds.

The current version of the program has been tested on Sun3, Sun4, Sun386i, SGI, DEC, and E&S mips-based machines; DEC Alpha (OSF/1 and OpenVMS), VAX VMS (under DEC Windows), IBM RS/6000, hp9000, and Sequent, compiled under both gcc and (typically) the native compiler. The version for Microsoft Windows requires version 7 of the Microsoft Optimizing C Compiler or Visual C++ Compiler and the Microsoft Software Development Kit (SDK).

The source code is public domain and freely distributable provided that the original author is suitably acknowledged. Although no formal registration is required, the author suggests a donation of $40 in U.S. currency or 25 pounds British currency for those who "appreciate the large amount of work that went into RasMol."

RasMol version 2.3 (as released on 03/04/94) is immediately available as CUG #418.