Modular Programming Languages

2000 ◽  
2021 ◽  
Vol 43 (3) ◽  
pp. 1-61
Author(s):  
Weixin Zhang ◽  
Yaozhu Sun ◽  
Bruno C. D. S. Oliveira

Modularity is a key concern in programming. However, programming languages remain limited in terms of modularity and extensibility. Small canonical problems, such as the Expression Problem (EP), illustrate some of the basic issues: the dilemma between choosing one kind of extensibility over another one in most programming languages. Other problems, such as how to express dependencies in a modular way, add up to the basic issues and remain a significant challenge. This article presents a new statically typed modular programming style called Compositional Programming . In Compositional Programming, there is no EP: It is easy to get extensibility in multiple dimensions (i.e., it is easy to add new variants as well as new operations). Compositional Programming offers an alternative way to model data structures that differs from both algebraic datatypes in functional programming and conventional OOP class hierarchies. We introduce four key concepts for Compositional Programming: compositional interfaces , compositional traits , method patterns , and nested trait composition . Altogether, these concepts allow us to naturally solve challenges such as the Expression Problem, model attribute-grammar-like programs, and generally deal with modular programs with complex dependencies . We present a language design, called CP , which is proved to be type-safe, together with several examples and three case studies.


1992 ◽  
Vol 139 (4) ◽  
pp. 335
Author(s):  
R.F. Hobson ◽  
J.D. Hoskin ◽  
J.L. Simmons ◽  
R.W. Spilsbury

Author(s):  
A. A. Nedbaylov

The calculations required in project activities for engineering students are commonly performed in electronic spreadsheets. Practice has shown that utilizing those calculations could prove to be quite difficult for students of other fields. One of the causes for such situation (as well as partly for problems observed during Java and C programming languages courses) lies in the lack of a streamlined distribution structure for both the source data and the end results. A solution could be found in utilizing a shared approach for information structuring in spreadsheet and software environment, called “the Book Method”, which takes into account the engineering psychology issues regarding the user friendliness of working with electronic information. This method can be applied at different levels in academic institutions and at teacher training courses.


Author(s):  
Petar Halachev ◽  
Aleksandra Todeva ◽  
Gergana Georgieva ◽  
Marina Jekova

he report explores and analyzes the application of the most popular programming languages from different organizations: GitHub; Stackoverflow; the TIOBE's Community index. The main client technologies: HTML; CSS; JavaScript; Typescript are presented and analysed. Features are characterized and the advantages and the disadvantages of the server technologies are described: Java; PHP; Python; Ruby. The application areas for web site development technologies have been defined. The creation of a quality web site is a complex and complicated process, but by observing some guidelines and recommendations in the work process can help to select the tools and the technologies in its design and development.


Sign in / Sign up

Export Citation Format

Share Document