baud@eedsp.eedsp.gatech.edu (Kurt Baudendistel) (03/16/90)
I'd like to find out about language support for fixed-point arithmetic. I am aware of only two types of support for such a data type: Ada supports an intrinsic fixed-point type that allows the user to specify the range (maximum absolute value supported) and scale (maximum required step-size). It is intended to be implemented via an integer arithmetic unit to provide (1) fixed- accuracy computations and (2) efficient execution in embedded systems without floating-point hardware support. The ideas for Ada's fixed-point type came from some other embedded systems lanaguages, but it is the only ``modern'' language that supports a fixed-point type. C++ and other object-oriented languages (such as Ada) that support data type synthesis (constructors/destructors, infix operators, etc.) can be used to build fixed-point data types. If we are interested in efficient execution and fixed-accuracy computations, as the Ada fixed-point intrinsic type is, we must note that, as with any other user-defined type, such fixed- point data types can be constructed only of existing language components. This means that we can construct such types only in the manner that Ada does---integer arithmetic is the implementation method and a fixed-point type has a specified range and scale. Such data types will not be as efficient as the built-in Ada type, since they have to carry around a lot of baggage that can't be integrated in to the code, but that's life in the fast lane. If we are interested in the fixed-point data type only for the purposes of simulation, however, we can construct fixed-point data types that do many more things---saturation overflow, delayed multiplication, automatic scale adjustment, etc. Why am I intereted in such fixed-point data types? Well, Programmable DSP (Digital Signal Processing) chips have become commonplace, but a programming medium (in the form of a fixed-point data type) and a programming methodology (that would help the programmer pick range and scale parameters) have not materialized. I would like to proceed with some ideas to (hopefully) produce thesis quality material on this topic, but I have discovered a disconcerting fact---there doesn't appear to be any literature on this topic! A better statement might be that I can't find any literature on this topic, and this makes me very uncomfortable since I'm sure that there must be some out there! I know of only a few articles dealing with this topic from a language design standpoint: Froggatt, Fixed-point conversion, multiplication, and division in Ada, Ada Letters, Vol. 7, No. 1, Jan-Feb 1987, pp. 71-81 (A rationale for the Ada fixed-point data type) Nelson, Pascal-F, IEEE ElectroTechnology Review, 1986 (I haven't read this one yet) Pepe and Rogers, Simulation of fixed-point operations with high-level languages, IEEE Trans. on ASSP, Vol. ASSP-35, No. 1, p. 116-18, Jan 1987 (Fortran subroutines) Johnson, [I can't find the reference right now] (C++ classes for fixed-point simulation) I have tried on-line library searches, scoured the ACM Computing Guide for the last ~5 years, and asked local CS profs, and come up dry! Can anyone out there in netland put me on the trail of some research/articles on language design for fixed-point arithmetic? Any help at all (including references and personal contacts) will be greatly appreciated. Please respond, and please respond by e-mail! If you are interested in the results of my search, e-mail a result-request as well. Thanks. kurt -- Kurt Baudendistel --- GRA Georgia Tech, School of Electrical Engineering, Atlanta, GA 30332 internet: baud@eedsp.gatech.edu uucp: gatech!gt-eedsp!baud
robison@dfsun1.electro.swri.edu (Bob Robison) (03/16/90)
In article <787@eedsp.eedsp.gatech.edu> baud@eedsp.eedsp.gatech.edu (Kurt Baudendistel) writes: >I'd like to find out about language support for fixed-point arithmetic. [bunch of stuff deleted] > > Johnson, [I can't find the reference right now] > (C++ classes for fixed-point simulation) The one I have on this is Robert E. Vaughan and Don H. Johnson, A Fixed Point Arithemtic Type for Signal Processing Systems Simulation Rice University Technical Report #8510, May 1985 >Thanks. >kurt Good Luck. bob -- Bob Robison - Southwest Research Institute, Electromagnetics Div. robison@dfsun1.electro.swri.edu {sun!texsun, gatech!petro, uunet!cs.utexas.edu}!swrinde!dfsun1!robison
cdc@uafhcx.uucp (C. D. Covington) (03/27/90)
I have been involved in this field for some time and authored the GOSPL system (Graphic Oriented Signal Processing Language) which appeared at the same time as the BDC (Block Diagram Compiler) of Lincoln Labs and has now been eclipsed by the Gabriel system of Berkeley. In summary, my impression is that exact mapping of algorithms into fixed point implementations has been relegated to technicians in real companies and that academia consistently uses floating point to bury this problem during algorithm development. I think you have an interesting problem. Go for it. C. David Covington (WA5TGF) INTERNET cdc@uafhcx.uark.edu Assistant Professor, Electrical Engineering (501)575-6583 campus office University of Arkansas 575-5379 research office Fayetteville, AR 72701 575-3041 research lab