33 research outputs found
Introduction to the Literature on Programming Language Design
This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search
Special Libraries, September 1976
Volume 67, Issue 9https://scholarworks.sjsu.edu/sla_sl_1976/1007/thumbnail.jp
Introduction to the Literature On Programming Language Design
This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search
Dynamically typed languages
Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed languages, and little knowledge of their rich history. In this chapter I explore the general topic of dynamically typed languages, how they differ from statically typed languages, their history, and their defining features
Syntactic Sugar Programming Languages' Constructs
Software application development is a daily task done by developers and code writers all over the world. A valuable portion of developers‘ time is spent in writing repetitive keywords, debugging code, trying to understand its semantic, and fixing syntax errors. These tasks become harder when no integrated development environment (IDE) is available or developers use remote access terminals like UNIX and simple text editors for code writing. Syntactic sugar constructs in programming languages are found to offer simple and easy syntax constructs to make developers' lives easier and smoother. In this study we propose a new set of syntactic sugar constructs, and try to find if they really can help developers in reducing syntax errors, make code shorter, more readable, easier to write, and can help in debugging and semantic understanding. Our methodology was to construct a new syntactic sugar constructs set extracted from existing programming languages' syntax in addition to other syntactic enhancements proposed by us, then we verified the efficiency of the new syntactic sugar constructs set through executing an exploratory case study with students and professional programmers. The exploratory case study results showed positive indicators for using the new proposed syntactic sugar constructs set to write programs' syntax. They helped in reducing syntax errors, making the code more readable, easier to write, and to understand.تطوير البرمجيات التطبيقية ىي ميمة يومية يقوم بيا المطورون والمبرمجون في كافة انحاء العالم،
و ييدر جزء ال بأس بو من وقت المبرمجين في كتابة كممات مفتاحية بشكل متكرر في الجمل
التركيبية لمبرامج وتصحيح األخطاء في بناء الجمل التركيبية، و محاولة فيم دالالت البرامج. ىذه
الميام تصبح أكثر صعوبة إذا لم تكن ىناك بيئة تطوير متكاممة متاحة لإلستخدام، أو عندما يقوم
المطورون بكتابة البرامج بإستخدام محررات نصوص بسيطة، وكذلك في حالة تطوير البرامج عن
بعد بإستخدام برمجيات االتصال الطرفي كما في نظام التشغيل يونيكس مثلا.
لقد أوجدت محسنات بناء الجمل التركيبية في لغات البرمجة لتقدم تركيبات نصية بسيطة وسيمة
وجعل حياة المطورين أسيل. بناءاٌ عمى ذلك، نقترح في ىذه الدراسة مجموعة جديدة من محسنات
بناء الجمل التركيبية، ونحاول معرفة ما إذا كانت ىذه المحسنات تساىم في التقميل من االخطاء
اكثر وضوحاا النصية وجعل تركيب الجمل في لغات البرمجة ابسط و واسيل لمق ارءة والكتابة والتتبع
وفيم دالالت البرامج.
منيجية البحث المتبعة في ىذه الدراسة تقوم عمى إيجاد مجموعة من محسنات بناء الجمل التركيبية
والمستخرجة من بعض لغات البرمجة المستخدمة ، إضافة الى عدد من التحسينات المقترحة، ومن
ثم محاولة التحقق من فعالية ىذه المحسنات من خلل إجراء دراسة حالة استكشافية مع عدد من
الدارسين والمطورين ذوي الخبرة.
ولقد اظيرت نتائج الدراسة مؤشرات ايجابية واضحة حول استخدام محسنات بناء الجمل التركيبية
في كتابة البرمجيات، ولقد ساعدت ىذه المحسنات في الحد من األخطاء النصية وجعل تركيب
الجمل في لغات البرمجة اكثر وضوحاا واسيل لمق ارءة والكتابة والتتبع وفيم الدالالت
Dynamically typed languages.
Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed languages, and little knowledge of their rich history. In this chapter I explore the general topic of dynamically typed languages, how they differ from statically typed languages, their history, and their defining features
A coprocessor design for the architectural support of non-numeric operations
Computer Science is concerned with the electronic manipulation of information. Continually increasing amounts of computer time are being expended on information that is not numeric. This is represented in part by modem computing requirements such as the block moves associated with context switching and virtual memory management, peripheral device communication, compilers, editors, word processors, databases, and text retrieval. This dissertation examines the traditional support of non-numeric information from a software, firmware, and hardware perspective and presents a coprocessor design to improve the performance of a set of non-numeric operations. Simple micro-coding of operations can provide a degree of performance improvement through parallel execution of instructions and control store access speeds. New special purpose parallel hardware algorithms can yield complexity improvements. This dissertation presents a parallel hardware regular expression searching algorithm which requires linear time and quadratic space compared to software uniprocessor algorithms which require exponential time and space. A very large scale integration (VLSD implementation of a version of this algorithm was designed, fabricated, and tested. The hardware. searching algorithm is then combined with other special purpose hardware to implement a set of operations. Simulation is then used to quantify the performance improvement of the operations when compared to software solutions. A coprocessor approach allows the optional addition of hardware to accelerate a set of operations. This is appropriate from a complex instruction set computer (CISC) perspective since hardware acceleration is being utilized. It is also appropriate from a reduced instruction set computer (RISC) perspective since the operations are distributed away from the central processing unit (CPU)
Recommended from our members
Computer collation of manuscript poetry : Dylan Thomas' "Poem on his birthday"
Over the last two decades the computer has relieved man of many tedious chores in nearly every imaginable field. It can diagnose diseases, check income tax returns, and prepare concordances to literary works. Indeed computers have even 'written' music and poetry. However, substituting for man in the creation of poetry seems beyond the province of the computer, no matter how interesting such attempts might be. Yet a computer can aid in examining the process of man's creation of poetry. Therefore I have attempted to provide evidence for studying a poet's methods of composing a poem by using a computer to collate the manuscripts of Dylan Thomas' 'Poem on his Birthday.'Englis
Theory and practice in the construction of efficient interpreters
Various characteristics of a programming language, or of the hardware on which it is to be
implemented, may make interpretation a more attractive implementation technique than compilation
into machine instructions. Many interpretive techniques can be employed; this thesis is mainly
concerned with an efficient and flexible technique using a form of interpretive code known as
indirect threaded code (ITC). An extended example of its use is given by the Setl-s implementation
of Setl, a programming language based on mathematical set theory. The ITC format, in which pointers
to system routines are embedded in the code, is described and its extension to cope with
polymorphic operators. The operand formats and some of the system routines are described in detail
to illustrate the effect of the language design on the interpreter.
Setl must be compiled into indirect threaded code and its elaborate syntax demands the use of a
sophisticated parser. In Setl-s an LR(1) parser is implemented as a data structure which is
interpreted in a way resembling that in which ITC is interpreted at runtime. Qualitative and
quantitative aspects of the compiler, interpreter and system as a whole are discussed.
The semantics of a language can be defined mathematically using denotational semantics. By setting
up a suitable domain structure, it is possible to devise a semantic definition which embodies the
essential features of ITC. This definition can be related, on the one hand to the standard
semantics of the language, and on the other to its implementation as an ITC-based interpreter. This
is done for a simple language known as X10. Finally, an indication is given of how this approach
could be extended to describe Setl-s, and of the insight gained from such a description. Some
possible applications of the theoretical analysis in the building of ITC-based interpreters are
suggested