Page 1 Proceedings of the 7Th USENIX Tcl/Tk Conference Austin

Total Page:16

File Type:pdf, Size:1020Kb

Page 1 Proceedings of the 7Th USENIX Tcl/Tk Conference Austin Proceedings of the 7th USENIX Tcl/Tk Conference Austin, Texas, USA, February 14–18, 2000 U S I N G T C L T O B U I L D A B U Z Z W O R D * C O M P L I A N T E N V I R O N M E N T T H AT G L U E S T O G E T H E R L E G A C Y A N A L Y S I S P R O G R A M S Carsten H. Lawrenz and Rajkumar C. Madhuram THE ADVANCED COMPUTING SYSTEMS ASSOCIATION © 2000 by The USENIX Association. All Rights Reserved. For more information about the USENIX Association: Phone: 1 510 528 8649; FAX: 1 510 548 5738; Email: [email protected]; WWW: http://www.usenix.org. Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes.This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. Using Tcl To Build A Buzzword* Compliant Environment That Glues Together Legacy Analysis Programs Carsten H. Lawrenz, Rajkumar C. Madhuram, Siemens Westinghouse Power Corporation, Orlando, Florida {Carsten.Lawrenz,Rajkumar.Madhuram}@swpc.siemens.com Abstract. The Siemens Integrated Design (SID) Environment is a system that allows engineers to link together many legacy computer programs. This capability provides significant reduction in effort for defining the conceptual design of electrical generators. The SID environment is a generic tool for running all types of analysis programs (methods) as well as managing their associated data. Methods are plugged into the environment in a simplified fashion by using a well-defined interface. Any features that are added to the environment immediately benefit all methods. Data can be shared between remote sites through an in-house developed, java based, replication server. This paper discusses how Tcl was used to develop the SID Environment and why it was the best choice for our application. * Buzzwords: Scalable, Multi User, Client Server, Distributed, Cross Platform, Customizable. 1. Introduction platforms were limited. We evaluated a third party GUI library (Galaxy) which was C based. We found its use 1.1 Business Case of coding too difficult to develop a prototype quickly. Java was still only known as Coffee. By chance, the Siemens Westinghouse relies on various complex authors discovered Tcl/Tk. Although Tcl was not computer calculations for designing electrical officially available on Windows at the time, various generators. Various computer programs (methods) Windows versions did exist. written in FORTRAN and other languages have been used over time. Because each method addressed Siemens Westinghouse designed an architecture that specific aspects of generator design, they existed as enabled methods to be easily plugged in, instantly standalone entities. Running each method required the sharing data among other methods. Using Tcl lent itself manual creation of input files and the manual extraction to fast prototyping and development. Six months into of output data to prepare it as the input for other development, engineers were able to start using the methods. More complications arose when trying to newly created environment. incorporate the more contemporary functionality of spreadsheets. This process, and its many iterations, Processes when performed by several different design teams, Distributed Data resulted in several manual hand-offs of information. TCL Code Server JAVA Code Furthermore, this created an immense paper trail, data SQL Server RPC Calls Tcl blend integrity issues, and time and effort spent trying to keep Remote CORBA Replication Distributed the design teams synchronized. SID Environment Server Data Servers JDBC Mini SQL There was an effort to reduce the time required to Desktop Database Variables conceptually design an electrical generator from 180 Run Server Server Days and 10 engineers to 18 Days and 3 engineers. The File Server Xess Server File Agent project was incrementally funded; therefore quick turn Fortran codes Xess around time was required. Variables Data Method Output Although most of our user platform was UNIX based, we knew we may want to use the Windows platform some time in the future. The computer languages with Figure 1: SID Architecture GUI support that ran at the time (1995) on both Figure 2: Snapshots of the SID Environment (Left: Case Manager, Input Screen, and Variable table. Right: Dynamic Input Screen, Data Flow and Process Maps) 1.2 Basic Usage updates the variables within the scope of the case. This transfer of data is accomplished by the use of input and The SID Environment simplifies the conceptual design output forms which are detailed below. process by automating and linking manual tasks. Users attend a one day training class during which theyÕre The environment also provides many utilities for IDÕs are registered in the SID database. Once viewing the various output types (PDF, postscript, registered, typing ÔsidÕ in a command window launches plots, HTML) created by the methods. All output the environment. viewing is launched from a data viewer tool. This allows the less computer savvy users to be very Each user works in their own unique data set that we productive. call a case. These cases are collected in folders and are presented in a hierarchical format similar to a file 2. Architecture manager. The folders and cases also mimic UNIX type file access permissions, which the user can modify. The architecture of SID Environment is outlined in Any a number of methods are associated with each Figure 1. The SID environment is a collection of case. The user opens a case by selecting a method. The servers and the desktop client. The desktop client case is then locked to disable access by other users. (shown in Figure 2) handles most of the user interactions with the system. It communicates with The case is displayed to the user as a window. Within several other servers for performing various functions. this window the input screens for each associated method may be displayed. A method screen, by default, is a table of variable names. The environment allows customized input screens for each method as well. Users can select on any variableÕs entry box and change its value. Validations of input data for each variable are provided. A popup menu provides descriptions for each variable. The variablesÕ descriptions, units and type are all defined in a global variable file. The scope of each variable is global within the case, which allows methods to communicate. The user may select to run one method or several methods in series. As each method runs, the environment automatically with the data server to access the replication server objects. metho case folder It was also required to port the system to Windows NT. In order to give uniform access to the case data, a file name oid type parent agent was required. It handles data movement to and É name from a case on behalf of the user into the central data É oid = parent repository. This mechanism also provides an added level of security, since all the data is owned by the file agent and access is only allowed through this file agent. case metho 3. Software Development oid caseid = oid mname = mname caseid 3.1 Debugging É The fact that Tcl is as fully interpreted language lends oid = oid oid = oid itself well to software development. Many programmers fault Tcl because it does not provide syntax checking like other languages such as C. object However, in the Tcl mode of programming the oid É developer is able (with tools like TkInspect) to dynamically modify the code while the program is running. Furthermore, modified code can easily be reloaded into the interpreter by re-sourcing the code Figure 3: E-R diagram for case and without having to exit the program. Also, bug fixes can method tables be copied out to the production area without having to take the whole environment down. We found this approach to programming to be much quicker than the Variables are the most widely used logical entities in code, compile and debug method. the system. They are stored in a data file in key-value ordered pairs. Each method takes input from a set of TclÕs error handling is more graceful than C or Java variables and generates output that is returned. For also. Most errors arenÕt fatal, i.e. the environment every design calculation or analysis, engineers use a set usually does not crash when errors are encountered. of methods, which we group as a case. In essence, a We overrode the error handler with a dialog box, that case is the set of methods and their related variables. allows the user to email the developer a description of what caused the bug and a stack trace. This usually Cases have to be managed in a reliable and fail-safe provides the developer enough information to manner, especially in a multi-user environment. Hence, determine the cause of the error. we employed a mini sql (mSQL) database [Hugh99] to hold the information about the cases, methods, users 3.2 Coding and the relationships between them. Cases are organized in the fashion of a UNIX file system, with a SID requires relatively few lines of Tcl code. This is hierarchy of folders and permissions to control access. advantageous because the development team is only Each case and each method in a case are uniquely allotted 1_ man years per year for environment identified by an object id (oid) and its parents oid. The maintenance. The SID environment contains over 115 relations between these entities are shown in Figure 3.
Recommended publications
  • DM2 Week 15 PHP Mysql.Pptx
    PHP and MySQL ATLS 3020 Digital Media 2 Aileen Pierce Web Database Applications PHP Working with Databases ¤ PHP scripts can easily access many different databases ¤ MySQL ¤ Oracle ¤ Informix ¤ mSQL ¤ ODBC ¤ PHP provides functions that begin with mysqli_ to access MySQL databases. PHP Communicating with MySQL ¤ PHP works with MySQL using the following process: 1. Connect to MySQL 2. Prepare a SQL statement 3. Execute the statement and save the result 4. Extract the data from the result 5. Prepare the resulting page Connecting PHP to MySQL ¤ Connect to MySQL $dbc= mysqli_connect(“hostname”, “username”, “password”, “db_name”); ¤ Hostname is the URL of the MySQL server. ¤ Use localhost if PHP and MySQL servers are on the same machine (as on redwood). ¤ Username and password are for MySQL. ¤ Database name is identikey+db (apiercedb) ¤ Must assign the connection to a variable to use throughout your script. Connecting PHP to MySQL ¤ mysqli_connect_error() returns an error if the connection is not made. $dbc= mysqli_connect(“hostname”, “username”, “password”, “db_name”) OR die ('Could not connect to MySQL: ' . mysqli_connect_error() ); ¤ die() will cause the script to exit ¤ Prints out an error message SQL Statements ¤ The mysqli_query() function allows you to pass any SQL command to the database and the result is returned. $result= mysqli_query(“db connection”, “SQL”); ¤ Use phpmyadmin to help you create the SQL statement $result = mysqli_query($dbc, “SELECT * from drink” ); SQL Statements ¤ Or assign the SQL statement to a variable $sql = “INSERT INTO drink (name, caf, whip, calories) VALUES ('cappuccino', 'yes', 'no', '90')”; ¤ Then pass the SQL statement to the database connection $result = mysqli_query($dbc, $sql); ¤ You must assign the result to a variable.
    [Show full text]
  • Fortran Resources 1
    Fortran Resources 1 Ian D Chivers Jane Sleightholme May 7, 2021 1The original basis for this document was Mike Metcalf’s Fortran Information File. The next input came from people on comp-fortran-90. Details of how to subscribe or browse this list can be found in this document. If you have any corrections, additions, suggestions etc to make please contact us and we will endeavor to include your comments in later versions. Thanks to all the people who have contributed. Revision history The most recent version can be found at https://www.fortranplus.co.uk/fortran-information/ and the files section of the comp-fortran-90 list. https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=comp-fortran-90 • May 2021. Major update to the Intel entry. Also changes to the editors and IDE section, the graphics section, and the parallel programming section. • October 2020. Added an entry for Nvidia to the compiler section. Nvidia has integrated the PGI compiler suite into their NVIDIA HPC SDK product. Nvidia are also contributing to the LLVM Flang project. Updated the ’Additional Compiler Information’ entry in the compiler section. The Polyhedron benchmarks discuss automatic parallelisation. The fortranplus entry covers the diagnostic capability of the Cray, gfortran, Intel, Nag, Oracle and Nvidia compilers. Updated one entry and removed three others from the software tools section. Added ’Fortran Discourse’ to the e-lists section. We have also made changes to the Latex style sheet. • September 2020. Added a computer arithmetic and IEEE formats section. • June 2020. Updated the compiler entry with details of standard conformance.
    [Show full text]
  • Oracle® Transparent Gateway for Microsoft SQL Server Administrator’S Guide 10G Release 2 (10.2) for Microsoft Windows (32-Bit) B14270-01
    Oracle® Transparent Gateway for Microsoft SQL Server Administrator’s Guide 10g Release 2 (10.2) for Microsoft Windows (32-bit) B14270-01 June 2005 Oracle Transparent Gateway for Microsoft SQL Server Administrator’s Guide, 10g Release 2 (10.2) for Microsoft Windows (32-bit) B14270-01 Copyright © 2002, 2005, Oracle. All rights reserved. Primary Author: Amitai Sela Contributing Author: Laurel Hale, Cynthia Kibbe, Kishan Peyetti, Juan Ahues-Vasquez, Govind Lakkoju Contributor: Orit Curiel, Jacco Draaijer, Vira Goorah The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S.
    [Show full text]
  • A Relational Multi-Schema Data Model and Query Language for Full Support of Schema Versioning?
    A Relational Multi-Schema Data Model and Query Language for Full Support of Schema Versioning? Fabio Grandi CSITE-CNR and DEIS, Alma Mater Studiorum – Universita` di Bologna Viale Risorgimento 2, 40136 Bologna, Italy, email: [email protected] Abstract. Schema versioning is a powerful tool not only to ensure reuse of data and continued support of legacy applications after schema changes, but also to add a new degree of freedom to database designers, application developers and final users. In fact, different schema versions actually allow one to represent, in full relief, different points of view over the modelled application reality. The key to such an improvement is the adop- tion of a multi-pool implementation solution, rather that the single-pool solution usually endorsed by other authors. In this paper, we show some of the application potentialities of the multi-pool approach in schema versioning through a concrete example, introduce a simple but comprehensive logical storage model for the mapping of a multi-schema database onto a standard relational database and use such a model to define and exem- plify a multi-schema query language, called MSQL, which allows one to exploit the full potentialities of schema versioning under the multi-pool approach. 1 Introduction However careful and accurate the initial design may have been, a database schema is likely to undergo changes and revisions after implementation. In order to avoid the loss of data after schema changes, schema evolution has been introduced to provide (partial) automatic recov- ery of the extant data by adapting them to the new schema.
    [Show full text]
  • With SCL and C/C++ 3 Graphics for Guis and Data Plotting 4 Implementing Computational Models with C and Graphics José M
    Presentation Agenda Using Cross-Platform Graphic Packages for 1 General Goals GUIs and Data Plotting 2 Concepts and Background Overview with SCL and C/C++ 3 Graphics for GUIs and data plotting 4 Implementing Computational Models with C and graphics José M. Garrido C. 5 Demonstration of C programs using graphic libraries on Linux Department of Computer Science College of Science and Mathematics cs.kennesaw.edu/~jgarrido/comp_models Kennesaw State University November 7, 2014 José M. Garrido C. Graphic Packages for GUIs and Data Plotting José M. Garrido C. Graphic Packages for GUIs and Data Plotting A Computational Model Abstraction and Decomposition An software implementation of the solution to a (scientific) Abstraction is recognized as a fundamental and essential complex problem principle in problem solving and software development. It usually requires a mathematical model or mathematical Abstraction and decomposition are extremely important representation that has been formulated for the problem. in dealing with large and complex systems. The software implementation often requires Abstraction is the activity of hiding the details and exposing high-performance computing (HPC) to run. only the essential features of a particular system. In modeling, one of the critical tasks is representing the various aspects of a system at different levels of abstraction. A good abstraction captures the essential elements of a system, and purposely leaving out the rest. José M. Garrido C. Graphic Packages for GUIs and Data Plotting José M. Garrido C. Graphic Packages for GUIs and Data Plotting Developing a Computational Model Levels of Abstraction in the Process The process of developing a computational model can be divided in three levels: 1 Prototyping, using the Matlab programming language 2 Performance implementation, using: C or Fortran programming languages.
    [Show full text]
  • ASA- R-20222 / / ;' P Q DEPARTMENT of COMPUTER SCIENCE COLLEGE of SCIENCES OLD DOMINION UNIVERSITY NORFOLK, VIRGINIA 23529
    INASA-_R-20222 / / ;' p Q DEPARTMENT OF COMPUTER SCIENCE COLLEGE OF SCIENCES OLD DOMINION UNIVERSITY NORFOLK, VIRGINIA 23529 INFORMATION TECHNOLOGY: A TOOL TO CUT HEALTH L) CARE COSTS © By Dr. Ravi Mukkamala, Principal Investigator Final Report For the period ended August 31, 1996 Prepared for National Aeronautics and Space Administration Langley Research Center Hampton, VA 23681-0001 Under Research Grant Number NAG-l-1690 Wayne H. Bryant, Technical Monitor O Submitted by the Old Dominion University Research Foundation P.O. Box 6369 Norfolk, VA 23508-0369 September 1996 DEPARTMENT OF COMPUTER SCIENCE COLLEGE OF SCIENCES OLD DOMINION UNIVERSITY NORFOLK, VIRGINIA 23529 INFORMATION TECHNOLOGY: A TOOL TO CUT HEALTH CARE COSTS By Dr. Ravi Mukkamala, Principal Investigator Final Report For the period ended August 31, 1996 Prepared for National Aeronautics and Space Administration Langley Research Center Hampton, VA 23681-0001 Under Research Grant Number NAG-l-1690 Wayne H. Bryant, Technical Monitor Submitted by the Old Dominion University Research Foundation P.O. Box 6369 Norfolk, VA 23508-0369 September 1996 Information Technology: A Tool to Cut Health Care Costs Final Report (NAG-l-1690) R. Mukkamala K.J. Maly C.M. Overstreet E.C. Foudriat Department of Computer Science Old Dominion University Norfolk, Virginia 23529. Abstract We report on the work done as part of the NASA LaRC grant NAG-l-1690. As part of this effort, we have designed and built a prototype for an integrated medical record system. MRS (Medical Record System) is written in Tcl/Tk. While the initial version of the prototype had patient information hard coded into the system, the later versions used an INGRES database for storing patient information.
    [Show full text]
  • Plotting Package Evaluation
    Plotting package evaluation Introduction We would like to evaluate several graphics packages for possible use in the GLAST Standard Analysis Environment. It is hoped that this testing will lead to a recommendation for a plotting package to be adopted for use by the science tools. We will describe the packages we want to test, the tests we want to do to (given the short time and resources for doing this), and then the results of the evaluation. Finally we will discuss the conclusions of our testing and hopefully make a recommendation. According to the draft requirements document for plotting packages the top candidates are: ROOT VTK VisAD JAS PLPLOT There has been some discussion about using some python plotting package: e.g.,Chaco, SciPy, and possibly Biggles (suggested in Computers in Science and Engineering). A desired feature is have is the ability to get the cursor position back from the graphics package. We will look for this desired feature. An additional desired feature would be to have the same graphics package make widgets or have a closely associated widget friend. Widget friends will not be tested here, but will have to studied before agreeing to use it. Package Widget Friend(s) Comments Biggles WxPython Plplot PyQt, Tk, java The Python Qt interface is only experimental at present. ROOT Comes with its own GUI INTEGRAL makes GUIs from ROOT graphics libs. We hear this was a bit of a challenge to do, but much of the work is already done for us. for us. Tests: The testing is to be carried out separately in the Windows and Linux environments.
    [Show full text]
  • Volume 30 Number 1 March 2009
    ADA Volume 30 USER Number 1 March 2009 JOURNAL Contents Page Editorial Policy for Ada User Journal 2 Editorial 3 News 5 Conference Calendar 30 Forthcoming Events 37 Articles J. Barnes “Thirty Years of the Ada User Journal” 43 J. W. Moore, J. Benito “Progress Report: ISO/IEC 24772, Programming Language Vulnerabilities” 46 Articles from the Industrial Track of Ada-Europe 2008 B. J. Moore “Distributed Status Monitoring and Control Using Remote Buffers and Ada 2005” 49 Ada Gems 61 Ada-Europe Associate Members (National Ada Organizations) 64 Ada-Europe 2008 Sponsors Inside Back Cover Ada User Journal Volume 30, Number 1, March 2009 2 Editorial Policy for Ada User Journal Publication Original Papers Commentaries Ada User Journal — The Journal for Manuscripts should be submitted in We publish commentaries on Ada and the international Ada Community — is accordance with the submission software engineering topics. These published by Ada-Europe. It appears guidelines (below). may represent the views either of four times a year, on the last days of individuals or of organisations. Such March, June, September and All original technical contributions are articles can be of any length – December. Copy date is the last day of submitted to refereeing by at least two inclusion is at the discretion of the the month of publication. people. Names of referees will be kept Editor. confidential, but their comments will Opinions expressed within the Ada Aims be relayed to the authors at the discretion of the Editor. User Journal do not necessarily Ada User Journal aims to inform represent the views of the Editor, Ada- readers of developments in the Ada The first named author will receive a Europe or its directors.
    [Show full text]
  • CC Data Visualization Library
    CC Data Visualization Library: Visualizing large amounts of scientific data through interactive graph widgets on ordinary workstations Master of Science Thesis in the programmes Interaction Design & Algorithms, Languages and Logic MAX OCKLIND ERIK WIKLUND Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, May 2012 The Authors grant to Chalmers University of Technology the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Authors warrant that they are the authors to the Work, and warrant that the Work does not contain text, pictures or other material that violates copyright law. The Authors shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Authors have signed a copyright agreement with a third party regarding the Work, the Authors warrant hereby that they have obtained any necessary permission from this third party to let Chalmers University of Technology store the Work electronically and make it accessible on the Internet. CC Data Visualization Library: Visualizing large amounts of scientific data through interactive graph widgets on ordinary workstations MAX OCKLIND ERIK WIKLUND © MAX OCKLIND, May 2012. © ERIK WIKLUND, May 2012. Examiner: Olof Torgersson Chalmers University of Technology Department of Computer Science and Engineering SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 Cover: The GUI of the CCDVL library during a test run, showing a scatter plot graph of sample data with a lasso selection overlay. Sections 4.2.3 FRONTEND AND GUI ANALYSIS AND DESIGN and 4.3.3 FRONTEND AND GUI IMPLEMENTATION as well as APPENDIX B - MANUAL AND USER GUIDE contains detailed descriptions of the GUI and frontend.
    [Show full text]
  • 01 Front.Pdf
    Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and private study only. The thesis may not be reproduced elsewhere without the permission of the Author. Developing a Courseware Database for The AudioGraph A Thesis presented in partial fulfilment of the requirements for the degree of Master m Computer Science At Massey University, Palmerston North, New Zealand. Jun Pan 2000 Dedication To memory of my auntie, Jin Yuan Pan To my eldest sister, Feng Lan Pan To my lovely daughter, Shu Ke Acknowledgments I would like to take this opportunity to thank the people who have helped to make my thesis a reality. First, I would like to thank my supervisor, Chris Jesshope, for providing valuable guidance and suggestions along the way. I would also like to thank Elizabeth Kemp, who was very careful of checking my thesis and giving suggestions. Second, I would like to give my thanks to Zhenzi Zhang, my colleague and my best friend, for her ability to endure my demands for improvement. Without her continued help, my thesis wouldn't be handed in on time. Thanks to my friend, Margaret Rollinson for checking my English grammar and for making this a smooth and understanding process. Thanks to my colleagues, Simon Zhang, Robin Luo and Y ongqiu Liu. They gave me valuable feedback for my coding test. Finally I give my thanks to my lovely daughter, Shu for her support and understanding during thesis writing. Giving up mum time has not been easy for her.
    [Show full text]
  • Getting Started with Matlab (In Computer Science at UBC)
    Getting Started with Matlab (in Computer Science at UBC) Ian Mitchell Department of Computer Science The University of British Columbia Outline • Why Matlab? – Why not C / C++ / Java / Fortran? – Why not Perl / Python? – Why not Mathematica / Maple? • A Brief Taste of Matlab – where to find it – how to run it – interactive Matlab – m-files & debugging • Sources of Additional Information January 2013 Ian Mitchell (UBC Computer Science) 2 Choosing Programming Languages • Compare / contrast compiled languages C++ and Java C++ Java • Fast: close to hardware • Easy to use: references only, • Flexible: interfaces to almost garbage collection any other language • Popular: commonly used, widely • Flexible: pointers, references, available explicit memory allocation • Portable: common byte code • Flexible: everybody provides C / • Developed with a clear vision: C++ libraries Standard libraries for security, • Popular: commonly used, threading, distributed systems available everywhere • Slower: interpreted or JIT for • Prone to bugs: complex syntax, byte code memory leaks January 2013 Ian Mitchell (UBC Computer Science) 3 The Right Tool for the Job • C / C++ / Fortran: – Statically typed and compiled languages – Well developed algorithm, known platform, execution time is key • Java: – Simpler, partially compiled language – Unknown platform, less experienced programmer, development time is important, broad standard library • Perl / Python: – Interpreted “dynamic” languages: no typing, no compilation(?) – Unknown platform, development time is key,
    [Show full text]
  • Econometrics with Octave
    Econometrics with Octave Dirk Eddelb¨uttel∗ Bank of Montreal, Toronto, Canada. [email protected] November 1999 Summary GNU Octave is an open-source implementation of a (mostly Matlab compatible) high-level language for numerical computations. This review briefly introduces Octave, discusses applications of Octave in an econometric context, and illustrates how to extend Octave with user-supplied C++ code. Several examples are provided. 1 Introduction Econometricians sweat linear algebra. Be it for linear or non-linear problems of estimation or infer- ence, matrix algebra is a natural way of expressing these problems on paper. However, when it comes to writing computer programs to either implement tried and tested econometric procedures, or to research and prototype new routines, programming languages such as C or Fortran are more of a bur- den than an aid. Having to enhance the language by supplying functions for even the most primitive operations adds extra programming effort, introduces new points of failure, and moves the level of abstraction further away from the elegant mathematical expressions. As Eddelb¨uttel(1996) argues, object-oriented programming provides `a step up' from Fortran or C by enabling the programmer to seamlessly add new data types such as matrices, along with operations on these new data types, to the language. But with Moore's Law still being validated by ever and ever faster processors, and, hence, ever increasing computational power, the prime reason for using compiled code, i.e. speed, becomes less relevant. Hence the growing popularity of interpreted programming languages, both, in general, as witnessed by the surge in popularity of the general-purpose programming languages Perl and Python and, in particular, for numerical applications with strong emphasis on matrix calculus where languages such as Gauss, Matlab, Ox, R and Splus, which were reviewed by Cribari-Neto and Jensen (1997), Cribari-Neto (1997) and Cribari-Neto and Zarkos (1999), have become popular.
    [Show full text]