scholarly journals Comparison of ESP programming platforms

2021 ◽  
Vol 2 (2) ◽  
pp. 77-86
Author(s):  
Filip Rak ◽  
Jozef Wiora

The growing popularity of ESP boards has led to the development of several programming platforms. They allow users to develop applications for ESP modules in different programming languages, such as C++, C, Lua, MicroPython, or using AT Commands. Each of them is very specific and has different advantages. The programming style, efficiency, speed of execution, level of advancement, or memory usage will differ from one language to another. Users mostly base their choice depending on their programming skills and goals of the planned projects. The aim of this work is to determine, which language is the best suitable for a particular user for a particular type of project. We have described and compared the mentioned languages. We have prepared test tasks to indicate quantified values. There is no common rule because each of the languages is intended for a different kind of user. While one of the languages is slower but simpler in usage for a beginner, the other one requires broad knowledge but offers availability to develop very complex applications.

2010 ◽  
Vol 39 ◽  
pp. 436-440
Author(s):  
Zhi Ming Qu

In recent years, much research has been devoted to the refinement of IPv6; on the other hand, few have investigated the confusing unification of interrupts and Internet QoS. In this position paper, it demonstrates the emulation of interrupts. In order to overcome this quagmire, a novel system is presented for the intuitive unification of expert systems and massive multiplayer online role-playing games. It is concluded that erasure coding can be verified to make heterogeneous, interposable, and event-driven, which is proved to be applicable.


Author(s):  
Christian Lidström ◽  
Dilian Gurov

AbstractWhen developing complex software and systems, contracts provide a means for controlling the complexity by dividing the responsibilities among the components of the system in a hierarchical fashion. In specific application areas, dedicated contract theories formalise the notion of contract and the operations on contracts in a manner that supports best the development of systems in that area. At the other end, contract meta-theories attempt to provide a systematic view on the various contract theories by axiomatising their desired properties. However, there exists a noticeable gap between the most well-known contract meta-theory of Benveniste et al. [5], which focuses on the design of embedded and cyber-physical systems, and the established way of using contracts when developing general software, following Meyer’s design-by-contract methodology [18]. At the core of this gap appears to be the notion of procedure: while it is a central unit of composition in software development, the meta-theory does not suggest an obvious way of treating procedures as components.In this paper, we provide a first step towards a contract theory that takes procedures as the basic building block, and is at the same time an instantiation of the meta-theory. To this end, we propose an abstract contract theory for sequential programming languages with procedures, based on denotational semantics. We show that, on the one hand, the specification of contracts of procedures in Hoare logic, and their procedure-modular verification, can be cast naturally in the framework of our abstract contract theory. On the other hand, we also show our contract theory to fulfil the axioms of the meta-theory. In this way, we give further evidence for the utility of the meta-theory, and prepare the ground for combining our instantiation with other, already existing instantiations.


2020 ◽  
Vol 23 (5) ◽  
pp. 895-911 ◽  
Author(s):  
Michael Burch ◽  
Elisabeth Melby

Abstract The growing number of students can be a challenge for teaching visualization lectures, supervision, evaluation, and grading. Moreover, designing visualization courses by matching the different experiences and skills of the students is a major goal in order to find a common solvable task for all of them. Particularly, the given task is important to follow a common project goal, to collaborate in small project groups, but also to further experience, learn, or extend programming skills. In this article, we survey our experiences from teaching 116 student project groups of 6 bachelor courses on information visualization with varying topics. Moreover, two teaching strategies were tried: 2 courses were held without lectures and assignments but with weekly scrum sessions (further denoted by TS1) and 4 courses were guided by weekly lectures and assignments (further denoted by TS2). A total number of 687 students took part in all of these 6 courses. Managing the ever growing number of students in computer and data science is a big challenge in these days, i.e., the students typically apply a design-based active learning scenario while being supported by weekly lectures, assignments, or scrum sessions. As a major outcome, we identified a regular supervision either by lectures and assignments or by regular scrum sessions as important due to the fact that the students were relatively unexperienced bachelor students with a wide range of programming skills, but nearly no visualization background. In this article, we explain different subsequent stages to successfully handle the upcoming problems and describe how much supervision was involved in the development of the visualization project. The project task description is given in a way that it has a minimal number of requirements but can be extended in many directions while most of the decisions are up to the students like programming languages, visualization approaches, or interaction techniques. Finally, we discuss the benefits and drawbacks of both teaching strategies. Graphic abstract


Sensors ◽  
2020 ◽  
Vol 20 (16) ◽  
pp. 4621
Author(s):  
Thanh-Tung Nguyen ◽  
Yu-Jin Yeom ◽  
Taehong Kim ◽  
Dae-Heon Park ◽  
Sehan Kim

Kubernetes, an open-source container orchestration platform, enables high availability and scalability through diverse autoscaling mechanisms such as Horizontal Pod Autoscaler (HPA), Vertical Pod Autoscaler and Cluster Autoscaler. Amongst them, HPA helps provide seamless service by dynamically scaling up and down the number of resource units, called pods, without having to restart the whole system. Kubernetes monitors default Resource Metrics including CPU and memory usage of host machines and their pods. On the other hand, Custom Metrics, provided by external software such as Prometheus, are customizable to monitor a wide collection of metrics. In this paper, we investigate HPA through diverse experiments to provide critical knowledge on its operational behaviors. We also discuss the essential difference between Kubernetes Resource Metrics (KRM) and Prometheus Custom Metrics (PCM) and how they affect HPA’s performance. Lastly, we provide deeper insights and lessons on how to optimize the performance of HPA for researchers, developers, and system administrators working with Kubernetes in the future.


2011 ◽  
Vol 3 (1) ◽  
pp. 33-46
Author(s):  
Marcin Relich ◽  
Zbigniew Banaszak

Reference Model of Project Prototyping ProblemThe paper presents the idea of reference model of project prototyping problem for the projects that are at risk of failure. The hierarchical structure of declarative model connects two fields: functionalities of a typical service enterprise and management system of project execution in the enterprise. The functionalities as separate Constraints Satisfaction Problems (CSP) are described. CSP contains the sets of decision variables, their domains and constraints, which link these variables. The separated problems described as CSP, then in single main CSP are integrated. On the other hand, these problems can decompose into the subproblems concerning the functionalities of different fields. The open structure of model enables to solve the decision problems with different level of specificity. The decision problem can regard a query about the results of proposed decisions as well as the decisions guaranteeing the expected results. A declarative kind of proposed reference model in a natural way allows to implement its in constraint programming languages. The possibility of this approach illustrates an example.


1984 ◽  
Vol 13 (175) ◽  
Author(s):  
Kristine Stougård Thomsen ◽  
Jørgen Lindskov Knudsen

<p>The purpose of this paper is to describe a high level conceptual framework -- a taxonomy -- for programming languages with language constructs for specification of co-sequential and concurrent/interleaved processes.</p><p>Using a semi-formal model for processes we identify the major differences and similarities between co-sequential, interleaved and concurrent processes. We discuss the essential aspects of co-sequential processes, concerning different patterns in which control can be transferred between the processes. Moreover, we discuss the important common properties of co-sequential and concurrent/interleaved processes: Synchronization and communication. The form of this taxonomy is a tree of orthogonal aspects where each aspect may be further subdivided into orthogonal aspects. Each aspect is precisely defined and can be discussed without reference to the other aspects. This makes it easy to use the taxonomy when analyzing and comparing language constructs.</p><p>We find that the taxonomy is useful in at least three areas: When choosing a language for a specific application, when designing a language for a specific application area, and when teaching high level languages with multi-sequential processes.</p>


In the computing world where information is being gathered and analyzed it’s important for programmers to convert raw data into meaningful information and this can only be achieved through programming. The art of programming is not easy as many programming languages are present in the current programming world. The first programming course for any new programmer is always difficult. New programmers always try to copy the code provided by their instructors and after compiling the program, gets the number of errors which they are not able to solve. In this paper, we present a solution which helps the instructors and the programmers to know about student’s capacity of coding. This system provides a top few errors with their solutions. The programmers and the evaluators can also use the system to optimize the program which the students and the other stakeholders are using. As this system alerts the programmers and the other stakeholder about the compilation errors which occur and thus providing instant help for rectifications of the code when needed.


Author(s):  
Athanasios Tsadiras

The main advantage of a Recursive Algorithm (an algorithm defined in terms of itself) is that it can be easily described and easily implemented in a programming language (van Breughel, 1997). On the other hand, the efficiency of such an algorithm is relatively low because for every recursive call not yet terminated, a number of data should be maintained in a stack, causing time delays and requiring higher memory space (Rohl, 1984). Solving the same problem iteratively instead of recursively can improve time and space efficiency. For example, to solve a problem that involves N recursive procedure calls, it will require stack space linear to N. On the contrary, using iteration, the program will need a constant amount of space, independent of the number of iterations. There are programming languages, such as Prolog, that do not possess built-in iterative structures and so recursion should be used instead. Nevertheless, there are ways to write recursive programs that have similar behaviour with that of the corresponding iterative programs.


Author(s):  
A. BURRIEZA ◽  
E. MUÑOZ-VELASCO ◽  
M. OJEDA-ACIEGO

We introduce the syntax, semantics, and an axiom system for a PDL-based extension of the logic for order of magnitude qualitative reasoning, developed in order to deal with the concept of qualitative velocity, which together with qualitative distance and orientation, are important notions in order to represent spatial reasoning for moving objects, such as robots. The main advantages of using a PDL-based approach are, on the one hand, all the well-known advantages of using logic in AI, and, on the other hand, the possibility of constructing complex relations from simpler ones, the flexibility for using different levels of granularity, its possible extension by adding other spatial components, and the use of a language close to programming languages.


2004 ◽  
Vol 2004 (3) ◽  
pp. 135-160 ◽  
Author(s):  
F. Tchier

Relations and relational operators can be used to define the semantics of programming languages. The operations∨and∘serve to giveangelic semanticsby defining a program to go right when there is a possibility to go right. On the other hand, the demonic operations⊔and□do the opposite: if there is a possibility to go wrong, a program whose semantics is given by these operators will go wrong; it is thedemonic semantics. This type of semantics is known at least since Dijkstra's introduction of the language of guarded commands. Recently, there has been a growing interest in demonic relational semantics of sequential programs. Usually, a construct is given an ad hoc semantic definition based on an intuitive understanding of its behavior. In this note, we show how the notion ofrelational flow diagram(essentially a matrix whose entries are relations on the set of states of the program), introduced by Schmidt, can be used to give a single demonic definition for a wide range of programming constructs. This research had originally been carried out by J. Desharnais and F. Tchier (1996) in the same framework of the binary homogeneous relations. We show that all the results can be generalized by using the monotypes and the residuals introduced by Desharnais et al. (2000).


Sign in / Sign up

Export Citation Format

Share Document