Top PDF Programming Languages: Application and Interpretation

Programming Languages: Application and Interpretation

Programming Languages: Application and Interpretation

A general problem for any contract implementation—which is exacerbated by complex data—is a curious one. Earlier, we complained that it was difficult to check function contracts because we have insufficient power to observe: all we can check is that a value is a function, and no more. In real languages, the problem for data structures is actually the opposite: we have too much ability to observe. For instance, if we implement a strategy of deferring checking of a list, we quite possibly need to use a structure to hold the actual list, and modify first and rest to get their values through this structure (after checking contracts). However, a procedure like list? might now return false rather than true because structures are not lists; therefore, list? needs to be re-bound to a procedure that also returns true on structures that represent these special deferred- contract lists. But the contract system author needs to also remember to tackle cons? , pair? , and goodness knows how many other procedures that all perform observations. In general, one observation is essentially impossible to “fix”: eq? . Normally, we have the property that every value is eq? to itself, even for functions. However, the wrapped value of a function is a new procedure that not only isn’t eq? to itself but probably shouldn’t be, because its behavior truly is different (though only on contract violations, and only after enough values have been supplied to observe the violation). However, this means that a program cannot surreptitiously guard itself, because the act of guarding can be observed. As a result, a malicious module can sometimes detect whether it is being passed guarded values, behaving normally when it is and abnormally only when it is not!
Show more

207 Read more

5. Super Efficiency Analysis: An Application on The Efficiency of Programming Languages

5. Super Efficiency Analysis: An Application on The Efficiency of Programming Languages

Abstract: As in every period of history, it is desirable to be efficient while doing a study today too. Thus, resources can be used in the most appropriate way and maximum earnings can be obtained. These earnings can be directly financial or they can also be the increase of the quality of services in areas such as education and health. Data Envelopment Analysis (DEA) and Super Efficiency (SE) are widely used to measure this efficiency. In this study, DEA and SE are used in an application that focuses on the measurement of efficiency of programming languages. The 18 commonly used programming languages has been taken as decision-making units (DMU). By using SE analysis for the 10 DMUs with full efficiency, these fully efficient DMUs have been ranked. As a result of this ranking, C# has been identified as the most efficient programming language. The TypeScript programming language has been identified as the last one among the fully efficient DMUs by having the lowest SE score.
Show more

9 Read more

Reflection and its application to mechanized metareasoning about programming languages

Reflection and its application to mechanized metareasoning about programming languages

This formal framework of reflection provides a general and uniform way to define, view, and manipulate programming languages, and can be used to develop program- ming language metatheories. Currently, we are using reflection to develop an account of the F <: type theory as defined by the POPLmark challenge. Using our environ- ment for the task of formalization is straightforward; the routine proofs are fully automated. In addition, for simple proofs, the first-order forms are entirely hidden. One challenge, however, is to simplify the use of proof induction, which, as discussed in Section 7.4, relies on the first-order representation, including the metalogic quan- tifiers. The use of metalogical quantifiers differs from the rest of the account, where implicit framework quantifiers are used to quantify over second-order and context variables. The result is that there is a mismatch in representation when induction is performed, and proofs by induction are overly complicated. We believe that this can be solved by reformulating the induction rules, and we are currently working on a solution.
Show more

143 Read more

An application of algebra to the semantics of programming languages

An application of algebra to the semantics of programming languages

4.3 Initial Algebra Fixed-point Construction 4.3.1 Definition 4.3.2 Lambda Calculus Example Revisited 4.3.3 General Properties and Observations 4.4 Addition Expression Example 4.4.1 The [r]

192 Read more

The Conception, Evolution, and Application of Functional Programming Languages

The Conception, Evolution, and Application of Functional Programming Languages

The class of functional, or applicative programming languages, in which computa- tion is carried out entirely through the evaluation of expressions, is one such family of languages, and debates over its merits have been quite lively in recent years. Are func- tional languages toys, or are they tools? Are they artifacts of theoretical fantasy, or of visionary pragmatism? Will they ameliorate our software woes, or merely compound them? Whatever answers one might have for these questions, one cannot ignore the significant interest current researchers have in functional languages, and the impact they have had on both the theory and pragmatics of programming languages in general. Among the claims made by functional language advocates are that programs can be written quicker, are more concise, are “higher level” (resembling more closely tra- ditional mathematical notation), are more amenable to formal reasoning and analysis, and can be executed more easily on parallel architectures. Of course, many of these features touch on rather subjective issues, which is one reason why the debates can be so lively.
Show more

87 Read more

A Complexity Metric for Multi-Paradigm Programming Languages

A Complexity Metric for Multi-Paradigm Programming Languages

It was discovered that the values gotten when multi- paradigm complexity metric was applied on each of the codes are higher than that of eLOC and CC, this is because MCM includes all other factors that affect code complexity neglected by eLOC and CC. It was also found out that the values realised from the application of Halstead method are somehow too exaggerated when compared with those from other existing metrics and the proposed metric.

7 Read more

Comparative Study of Hardware Languages and Programming Languages

Comparative Study of Hardware Languages and Programming Languages

Generally Verilog is best suited to structural designs, because it permits for better control of modules within the same abstraction layers, even though it lacks component hierarchy management. SystemC’s nature is behavioral, which can make it more difficult to synthesize than Verilog and VHDL. Hardware and programming languages have many various syntax format, coding, execution time ,application .These each types have different applications categorized into hardware designer and software designers for different purpose ,so their role are totally different in practical oriented. However each languages are widespread in their industry area.
Show more

5 Read more

Programming languages in chemistry: a review of HTML5/JavaScript

Programming languages in chemistry: a review of HTML5/JavaScript

When creating any application, a developer intends to reach as many users as possible. Developers therefore choose a programming language suited to the platforms presentable to the largest number of potential users. Because each Operating System (OS) is unique (Win- dows executables cannot be run natively on macOS, for instance), significant resources are required to port applications to each platform. If these resources are not available, the choice becomes which users to exclude. Fortunately, some programming languages were con- ceived to obviate that choice by providing a layer over the native platform of several operating systems, so code can be “written once and run everywhere” (coined by Sun Microsystems), thereby maximizing the developer’s effort. This was the inspiration to create the Java pro- gramming language; to allow developers to provide appli- cations across Windows, macOS (formerly Macintosh and Mac OS X), Linux and others. Java remains a popu- lar programming language today for producing scientific applications. Similarly, JavaScript became the program- ming language of the web; every significant web browser in existence, across traditional, mobile and emerging platforms, has built-in support for JavaScript. Many pop- ular platforms, such as iOS, do not support Java, but do support JavaScript. In this way, JavaScript has surpassed Java as a universal programming language; no other pro- gramming language rivals JavaScript in its accessibility.
Show more

19 Read more

A Brief Overview of Functional Programming Languages

A Brief Overview of Functional Programming Languages

Elm is a functional language that compiles to JavaScript. Elm was designed by Evan Czaplicki as his senior thesis work. The first release of Elm was done in 2012 [25]. Elm brings functional language constructs into web programming. This provides multiple benefits. One is that the risk of runtime errors is greatly reduced as Elm uses type inference during compilation whereby the data type of an expression is determined during compilation time itself. Elm has data structures such as maybe, result, and ‘task’ to handle errors. Task is an application of functional programming inspired error handling to web application problems. It can handle gracefully the problem of external services such as the HTTP API not responding.
Show more

5 Read more

A Semiotic Analysis of Programming Languages

A Semiotic Analysis of Programming Languages

The well-known difficulty to program computers [1] motivated the author to approach the issue from the perspective of semiotics, the science of signs, in or- der to find new insights. There are several schools and trends of semiotics today, but the present article is based on the work of the American philosopher Charles S. Peirce (1839-1914), whose studies encompass semiotics as a branch of philos- ophy, more precisely as a sign-based theory of cognition. The idea to apply se- miotics to computer science has been long known [2]-[7], but the only work that tries to apply it directly to programming languages is the book of Tanaka-Ishii [8]. There, the author does not fully apply Peircean theory: she instead proposes a new interpretation of semiotic concepts, resulting in a work that departs from a purely Peircean approach and misses its descriptive power for cognitive processes.
Show more

11 Read more

Bidirectional Programming Languages

Bidirectional Programming Languages

We might be tempted to go a step further and stipulate that the put function must always have “minimal” effects on the source, and not only when the view is unchanged. Unfortunately, even stating this condition requires seems to require building a notion of what constitutes an update into the semantics—we need to be able to compare two updates to determine which one has a “smaller” effect. Lenses are agnostic to the way that updates are expressed—the put function takes the whole state of the updated view (in database terminology, a materialized view) as input rather than an explicit operation in an update language. Being state based makes it easy to use lenses in many different application scenarios (since applications do not need to be retooled to manipulate the view via operations in a special update language) and to use lenses with data in non-standard and ad hoc formats (which do not usually come equipped with canonical update languages). But it makes it hard to express properties formulated in terms of updates. So, because lenses are agnostic to the way that updates are expressed, we only impose the weaker GP law, which can be stated abstractly and without assuming any particular notion of update. However, even though the GP law only provides a relatively loose constraint on the behavior of lenses, it is still a useful tool for designing lens primitives. We have used it many times to generate, test, and reject candidate transformations.
Show more

270 Read more

Artist-Programmers and Programming Languages for the Arts

Artist-Programmers and Programming Languages for the Arts

e analytical perspective shown in the paern DSLs discussed thus far puts focus on sim- ple paerns with unambiguous interpretation. We assert that music composition demands complex paerns with many possible interpretations, leading to challenged, engaged listeners in a state of flow (see analytic listening; Csikszentmihalyi, 2008, p. 111, and our discussion on timbre, §3.3.3). erefore paern DSL for synthesis of music requires an approach different from formal analysis. Motivation for the design of paern DSL for music composition is identi- fied by Laurie Spiegel in her paper “Manipulations of Musical Paerns” (Spiegel, 1981). Twelve classes of paern transformation, taken from Spiegel’s own introspection as a composer are detailed: transposition (translation by value), reversal (value inversion or time reversal), rota- tion (cycle time phase), phase offset (relative rotation, e.g. a canon), rescaling (of time or value), interpolation (adding midpoints and ornamentation), extrapolation (continuation), fragmenta- tion (breaking up of an established paern), substitution (against expectation), combination (by value – mixing/counterpoint/harmony), sequencing (by time – editing) and repetition. Spiegel felt these to be ‘tried and true’ basic operations, which should be included in computer music editors alongside insert, delete and search-and-replace. Further, Spiegel proposed that study- ing these transformations could aid our understanding of the temporal forms shared by music and experimental film, including human perception of them.
Show more

172 Read more

Exploring Visual Programming Concepts for Probabilistic Programming Languages

Exploring Visual Programming Concepts for Probabilistic Programming Languages

In his "No silver bullet - essence and accidents of software engineering" paper, Brooks says that "A favorite subject for PhD dissertations in software engineering is graphical, or visual, pro- gramming—the application of computer graphics to software design ... Nothing even convincing, much less exciting, has yet emerged from such efforts. I am persuaded that nothing will. In the first place, ... the flowchart is a very poor abstraction of software structure.... It has proved to be useless as a design tool.... Second, the screens of today are too small, in pixels, to show both the scope and the resolution of any seriously detailed software diagram.... More fundamentally, ... software is very difficult to visualize." [?]. While one may be tempted to be convinced by Brooks’ initial rhetoric, what he wrote does not seem to apply to the work of this thesis because: a) we won’t be using executable flowcharts, but rather a dataflow VPE approach, as described in 2.3.1 and b) as time passes screens are getting bigger and with higher resolutions, a low-end screen by today’s standards would be state of the art in 1986, when Brooks wrote that. The final claim that software is hard to visualize, backed by Dijkstra’s letter where he states that "I was recently ex- posed to ... what ... pretended to be educational software for an introductory programming course. With its “visualizations” on the screen, it was ... an obvious case of curriculum infantilization ... We must expect from that system permanent mental damage for most students exposed to it." [?], is contrary to many studies done in cognitive science [?][?][?].
Show more

79 Read more

Volume 55: Programming and Computer Languages 2012

Volume 55: Programming and Computer Languages 2012

lattice associated to P, then hr;σ i is called a fuzzy computed answer (f.c.a.) for that derivation. From now on, we proceed with more practical aspects regarding multi-adjoint lattices and im- plementation issues. The parser of our FLOPER tool [MM08, MMPV10a, MMPV11b] has been implemented by using the Prolog language. Once the application is loaded inside a Prolog inter- preter, it shows a menu which includes options for loading/compiling, parsing, listing and saving MALP programs, as well as for executing/debugging fuzzy goals. Moreover, in [MMPV10b] we explain that FLOPER has been recently equipped with new options, called “lat” and “show”, for allowing the possibility of respectively changing and displaying the multi-adjoint lattice as- sociated to a given program.
Show more

18 Read more

Volume 64: Programming and Computer Languages 2013

Volume 64: Programming and Computer Languages 2013

This subset of MALP is intended to cope with fuzzy propositional formulae like P ∧ Q → P ∨ Q, where propositions P and Q are interpreted as values of the lattice. To this end, a program is defined as a set of rules (also called “facts”) of the form “H with v”, where H is an atomic formula or atom (usually called head), and v is its associated truth degree (i.e., a value of L). More precisely, in our application, heads have always the form “i(v)” and each program rule looks like “i(v) with v”. It is noteworthy to point out that even when we use the same names for constants (building data terms) and truth degrees, the Herbrand Universe of each program and the carrier set of its associated lattice should never be confused, since they are in fact disjoint sets.
Show more

20 Read more

Volume 64: Programming and Computer Languages 2013

Volume 64: Programming and Computer Languages 2013

Abstract: We study the model checking problem for monotonic extensions of Petri Nets, namely for two extensions of Petri nets: reset nets (nets in which places can be emptied by the firing of a transition with a reset arc) and ν -Petri nets (nets in which tokens are pure names that can be matched with equality and dynamically created). We consider several fragments of LTL for which the model checking problem is decidable for P/T nets. We first show that for those logics, model checking of reset nets is undecidable. We transfer those results to the case of ν-Petri nets. In order to cope with these negative results, we define a weaker fragment of LTL, in which negation is not allowed. We prove that for that fragment, the model checking of both reset nets and ν-Petri nets is decidable, though with a non primitive recursive complexity. Finally, we prove that the model checking problem for a version of that fragment with universal interpretation is undecidable even for P/T nets.
Show more

19 Read more

An objective comparison of languages for teaching introductory programming

An objective comparison of languages for teaching introductory programming

The following criteria describe considerations beyond an intro- ductory course. It is useful to consider how well a language can be used into various levels of a computing degree program as learning new languages, although valuable, can be a costly ex- ercise if every new course requires its own language. As such an introductory language should also be examined from the perspectives of advanced levels of undergraduate programming and the programming industry. Moreover, using a language which is applicable in other contexts beyond introductory pro- gramming allows students to explore real world application domains using a powerful language and environment. This is especially relevant to students who wish to learn more, or at a faster pace.
Show more

6 Read more

Volume 64: Programming and Computer Languages 2013

Volume 64: Programming and Computer Languages 2013

This paper has presented eight new T OY ( F D ) search primitives, describing their behavior from a solver independent point of view, and using examples to show their application. It has emphasized the novel concepts those primitives include, as performing an exhaustive breadth exploration of the search tree further sorting the satisfiable solutions by a specified criteria, frag- menting the domains of the variables by pruning each one to a subset of its domain values instead of binding it to a single value, and applying the labeling or fragment strategy only to a subset of the variables involved. It has also pointed out how expressive, easy and flexible it is to specify some search criteria at T OY ( F D ) level, and also to apply different search strategies (setting different search scenarios) to the solving of a CP(F D) problem.
Show more

19 Read more

An objective comparison of languages for teaching introductory programming

An objective comparison of languages for teaching introductory programming

The following criteria describe considerations beyond an intro- ductory course. It is useful to consider how well a language can be used into various levels of a computing degree program as learning new languages, although valuable, can be a costly ex- ercise if every new course requires its own language. As such an introductory language should also be examined from the perspectives of advanced levels of undergraduate programming and the programming industry. Moreover, using a language which is applicable in other contexts beyond introductory pro- gramming allows students to explore real world application domains using a powerful language and environment. This is especially relevant to students who wish to learn more, or at a faster pace.
Show more

6 Read more

Volume 64: Programming and Computer Languages 2013

Volume 64: Programming and Computer Languages 2013

Logic Programming (LP) [Llo87] is being widely used from several decades ago for problem solving and knowledge representation, thus providing a great amount of foundations and tech- niques devoted to produce real world applications. Some steps beyond, during the last years im- portant research efforts have been performed for introducing inside the LP paradigm some tech- niques/constructs based on fuzzy logic in order to explicitly treat with uncertainty and approxi- mated reasoning in a natural way. Following this trail, several fuzzy logic programming systems have been developed [Lee72, KS92, BMP95, Voj01, GMV04, VP05, Str08, RR10, MCS11], where the classical inference mechanism of SLD–Resolution has been replaced by a fuzzy vari- ant which is able to handle partial truth in a comfortable way.
Show more

20 Read more

Show all 10000 documents...