982 resultados para Computer programming language
Resumo:
L'objectiu del projecte és la realització d'una eina capaç de traduir el pseudocodi al llenguatge de programació Java, utilitzant la programació orientada a objectes. S'obté un programa en Java del qual es podrà comprovar el seu bon funcionament, tot compilant-lo amb qualsevol compilador estàndard de Java com el distribuït per Sun Microsystems. El projecte està basat en teories de llenguatges i creació d'autòmats reconeixedors de gramàtiques, ja que són els fonaments per tal de realitzar un compilador/traductor. En el traductor s'implementa tant l'anàlisi lèxica, com la sintàctica i la semàntica. Les etapes de generació de codi intermedi, optimització i generació de codi final són substituïdes per la generació de codi Java
Resumo:
En aquest projecte es vol implementar una llibreria en Java, que proporcioni leseines necessàries per a crear diagrames i esquemes. Es vol proporcionar a la llibreria unconjunt d’objectes bàsics, també mètodes i funcionalitats suficients per a gestionaraquests objectes. Per altra part, es vol implementar una aplicació per a dissenyar diagrames Entitat-Relació que utilitzi aquesta llibreria
Resumo:
Ohjelmointitaito on asia, jonka oppimisesta ja opettamisesta voidaan olla montaa mieltä, eikä yhtä oikeaa tapaa toteuttaa ohjelmoinnin opetusta tunnu olevan olemassa. Se on kuitenkin selvää, että jotkin menetelmät ja työkalut tuntuvat olevan parempia kuin toiset. Lukuvuoden 2005-2006 päätteeksi Lappeenrannan teknillinen yliopisto päätti päivittää ohjelmoinnin perusopetusta, ja kokeili siirtymistä Python-ohjelmointikieleen ohjelmoinnin alkeiskursseilla. Koska kurssin varsinaiset muutokset keskittyivät tekniseen infrastruktuuriin, tutustuttiin alustavassa kirjallisuustutkimuksessa ensin erilaisiin lähestymistapoihin,aiempiin tapauksiin sekä mielekkäiden työkalujen löytämiseen. Tässä diplomityössä perehdytään ohjelmoinnin opetuksen työkaluihin sekä erityisesti Python-ohjelmointikielen hyödyntämiseen ohjelmoinnin perusopetuksessa. Diplomityö esittelee useita lähestymistapoja sekä keskittyy tutkimaan Pythonin soveltuvuutta alkeisopetuksen käyttötarkoituksiin. Diplomityö tutustuu myös Lappeenrannassa järjestetyn ohjelmoinnin perusteiden kurssin tuloksiin, ja analysoi sitä, pystyikö Python-pohjainen kurssi toteuttamaan teknisen yliopiston sille asettamat vaatimukset. Lopuksi aineistosta analysoidaan jatkotutkimuksen tarpeita sekä pyritään löytämään ne osa-alueet, joita näissä jatkotutkimuksissa tulisi vielä kehittää.
Resumo:
Diplomityön tarkoituksena on kehittää tietokoneohjelma putkilämmönsiirtimen vaippapuolen painehäviön laskemiseksi. Ohjelmalla voidaan varmistaa lämmönsiirtimen mitoitusvaiheessa, että vaippapuolen painehäviö ei ylitä sallittuja rajoja. Ohjelmatäydentää olemassa olevia mitoitusohjelmia. Tässä diplomityössä käsitellään ainoastaan höyryvoimalaitosprosesseissa käytettäviä putkilämmönsiirtimiä. Työn kirjallisessa osassa on selvitetty periaate höyryvoimalaitosprosessista ja siinä käytettävistä putkilämmönsiirtimistä sekä esitetty putkilämmönsiirtimien rakenne, yleinen suunnittelu ja lämpö- ja virtaustekninen mitoitus. Painehäviön laskennassa käytetyt ja lämpö- ja virtausteknistä mitoitusta käsittelevässä kappaleessa esitetyt yhtälöt perustuvat Bell-Delawaren menetelmään. Painehäviönlaskentaohjelma on toteutettu hyväksikäyttäen Microsoft Excel taulukkolaskentaa ja Visual Basic -ohjelmointikieltä. Painehäviön laskenta perustuu segmenttivälilevyillä varustetun putkilämmönsiirtimen vaippapuolen yksifaasivirtaukseen. Lämmönsiirtimen lauhdutinosan painehäviö oletetaan merkityksettömäksi, joten kokonaispainehäviö muodostuu höyryn- ja lauhteenjäähdyttimessä. Kehitetty ohjelma on suunniteltu erityisesti lauhteenjäähdyttimessä muodostuvan painehäviön laskentaan. Ohjelmalla laskettuja painehäviön arvoja on verrattu todellisesta lämmönsiirtimestä mitattuihin arvoihin. Lasketut arvotvastaavat hyvin mittaamalla saatuja, eikä tuloksissa ilmene mitään systemaattista virhettä. Ohjelma on valmis käytettäväksi putkilämmönsiirtimien mitoitustyökaluna. Diplomityön pohjalta on tehty ehdotukset ohjelman edelleen kehittämiseksi.
Resumo:
Possibilistic Defeasible Logic Programming (P-DeLP) is a logic programming language which combines features from argumentation theory and logic programming, incorporating the treatment of possibilistic uncertainty at the object-language level. In spite of its expressive power, an important limitation in P-DeLP is that imprecise, fuzzy information cannot be expressed in the object language. One interesting alternative for solving this limitation is the use of PGL+, a possibilistic logic over Gödel logic extended with fuzzy constants. Fuzzy constants in PGL+ allow expressing disjunctive information about the unknown value of a variable, in the sense of a magnitude, modelled as a (unary) predicate. The aim of this article is twofold: firstly, we formalize DePGL+, a possibilistic defeasible logic programming language that extends P-DeLP through the use of PGL+ in order to incorporate fuzzy constants and a fuzzy unification mechanism for them. Secondly, we propose a way to handle conflicting arguments in the context of the extended framework.
Resumo:
In the last decade defeasible argumentation frameworks have evolved to become a sound setting to formalize commonsense, qualitative reasoning. The logic programming paradigm has shown to be particularly useful for developing different argument-based frameworks on the basis of different variants of logic programming which incorporate defeasible rules. Most of such frameworks, however, are unable to deal with explicit uncertainty, nor with vague knowledge, as defeasibility is directly encoded in the object language. This paper presents Possibilistic Logic Programming (P-DeLP), a new logic programming language which combines features from argumentation theory and logic programming, incorporating as well the treatment of possibilistic uncertainty. Such features are formalized on the basis of PGL, a possibilistic logic based on G¨odel fuzzy logic. One of the applications of P-DeLP is providing an intelligent agent with non-monotonic, argumentative inference capabilities. In this paper we also provide a better understanding of such capabilities by defining two non-monotonic operators which model the expansion of a given program P by adding new weighed facts associated with argument conclusions and warranted literals, respectively. Different logical properties for the proposed operators are studied
Resumo:
VariScan is a software package for the analysis of DNA sequence polymorphisms at the whole genome scale. Among other features, the software:(1) can conduct many population genetic analyses; (2) incorporates a multiresolution wavelet transform-based method that allows capturing relevant information from DNA polymorphism data; and (3) it facilitates the visualization of the results in the most commonly used genome browsers.
Resumo:
This thesis presents a software that allows data acquisition production process, in this case, an automatic pallet nailing line. The recording of these data will enable them to make a track and analyze them later, either with the analytical tools of the application or by the transfer of such data to an Excel sheet or database. The programming language has been developed made by Ladder for the application in the PLC that controls the line of nailing. Control pages for the HMI application that monitors the process. Finally, the Visual Basic language for the production department computer application. To extract production variables from the process, the developed software communicates with the network formed by the PLC and the HMI terminal which stores and control the process using the Modbus TCP/IP protocol.
Resumo:
Software plays an important role in our society and economy. Software development is an intricate process, and it comprises many different tasks: gathering requirements, designing new solutions that fulfill these requirements, as well as implementing these designs using a programming language into a working system. As a consequence, the development of high quality software is a core problem in software engineering. This thesis focuses on the validation of software designs. The issue of the analysis of designs is of great importance, since errors originating from designs may appear in the final system. It is considered economical to rectify the problems as early in the software development process as possible. Practitioners often create and visualize designs using modeling languages, one of the more popular being the Uni ed Modeling Language (UML). The analysis of the designs can be done manually, but in case of large systems, the need of mechanisms that automatically analyze these designs arises. In this thesis, we propose an automatic approach to analyze UML based designs using logic reasoners. This approach firstly proposes the translations of the UML based designs into a language understandable by reasoners in the form of logic facts, and secondly shows how to use the logic reasoners to infer the logical consequences of these logic facts. We have implemented the proposed translations in the form of a tool that can be used with any standard compliant UML modeling tool. Moreover, we authenticate the proposed approach by automatically validating hundreds of UML based designs that consist of thousands of model elements available in an online model repository. The proposed approach is limited in scope, but is fully automatic and does not require any expertise of logic languages from the user. We exemplify the proposed approach with two applications, which include the validation of domain specific languages and the validation of web service interfaces.
Resumo:
The state of the object-oriented programming course in Lappeenranta University of Technology had reached the point, where it required changes to provide better learning opportunities and thus the learning outcomes. Based on the student feedback the course was partially dated and ineffective. The components of the course were analysed and the ineffective elements were removed and new methods were introduced to improve the course. The major changes included the change from traditional teaching methods to reverse classroom method and the use of Java as the programming language. The changes were measured by the student feedback, lecturer’s observations and comparison to previous years. The feedback suggested that the changes were successful; the course received higher overall grade than before.
Resumo:
The vast majority of our contemporary society owns a mobile phone, which has resulted in a dramatic rise in the amount of networked computers in recent years. Security issues in the computers have followed the same trend and nearly everyone is now affected by such issues. How could the situation be improved? For software engineers, an obvious answer is to build computer software with security in mind. A problem with building software with security is how to define secure software or how to measure security. This thesis divides the problem into three research questions. First, how can we measure the security of software? Second, what types of tools are available for measuring security? And finally, what do these tools reveal about the security of software? Measuring tools of these kind are commonly called metrics. This thesis is focused on the perspective of software engineers in the software design phase. Focus on the design phase means that code level semantics or programming language specifics are not discussed in this work. Organizational policy, management issues or software development process are also out of the scope. The first two research problems were studied using a literature review while the third was studied using a case study research. The target of the case study was a Java based email server called Apache James, which had details from its changelog and security issues available and the source code was accessible. The research revealed that there is a consensus in the terminology on software security. Security verification activities are commonly divided into evaluation and assurance. The focus of this work was in assurance, which means to verify one’s own work. There are 34 metrics available for security measurements, of which five are evaluation metrics and 29 are assurance metrics. We found, however, that the general quality of these metrics was not good. Only three metrics in the design category passed the inspection criteria and could be used in the case study. The metrics claim to give quantitative information on the security of the software, but in practice they were limited to evaluating different versions of the same software. Apart from being relative, the metrics were unable to detect security issues or point out problems in the design. Furthermore, interpreting the metrics’ results was difficult. In conclusion, the general state of the software security metrics leaves a lot to be desired. The metrics studied had both theoretical and practical issues, and are not suitable for daily engineering workflows. The metrics studied provided a basis for further research, since they pointed out areas where the security metrics were necessary to improve whether verification of security from the design was desired.
Resumo:
The "Java Intelligent Tutoring System" (JITS) research project focused on designing, constructing, and determining the effectiveness of an Intelligent Tutoring System for beginner Java programming students at the postsecondary level. The participants in this research were students in the School of Applied Computing and Engineering Sciences at Sheridan College. This research involved consistently gathering input from students and instructors using JITS as it developed. The cyclic process involving designing, developing, testing, and refinement was used for the construction of JITS to ensure that it adequately meets the needs of students and instructors. The second objective in this dissertation determined the effectiveness of learning within this environment. The main findings indicate that JITS is a richly interactive ITS that engages students on Java programming problems. JITS is equipped with a sophisticated personalized feedback mechanism that models and supports each student in his/her learning style. The assessment component involved 2 main quantitative experiments to determine the effectiveness of JITS in terms of student performance. In both experiments it was determined that a statistically significant difference was achieved between the control group and the experimental group (i.e., JITS group). The main effect for Test (i.e., pre- and postiest), F( l , 35) == 119.43,p < .001, was qualified by a Test by Group interaction, F( l , 35) == 4.98,p < .05, and a Test by Time interaction, F( l , 35) == 43.82, p < .001. Similar findings were found for the second experiment; Test by Group interaction revealed F( 1 , 92) == 5.36, p < .025. In both experiments the JITS groups outperformed the corresponding control groups at posttest.
Resumo:
Dynamic logic is an extension of modal logic originally intended for reasoning about computer programs. The method of proving correctness of properties of a computer program using the well-known Hoare Logic can be implemented by utilizing the robustness of dynamic logic. For a very broad range of languages and applications in program veri cation, a theorem prover named KIV (Karlsruhe Interactive Veri er) Theorem Prover has already been developed. But a high degree of automation and its complexity make it di cult to use it for educational purposes. My research work is motivated towards the design and implementation of a similar interactive theorem prover with educational use as its main design criteria. As the key purpose of this system is to serve as an educational tool, it is a self-explanatory system that explains every step of creating a derivation, i.e., proving a theorem. This deductive system is implemented in the platform-independent programming language Java. In addition, a very popular combination of a lexical analyzer generator, JFlex, and the parser generator BYacc/J for parsing formulas and programs has been used.
Resumo:
If you want to know whether a property is true or not in a specific algebraic structure,you need to test that property on the given structure. This can be done by hand, which can be cumbersome and erroneous. In addition, the time consumed in testing depends on the size of the structure where the property is applied. We present an implementation of a system for finding counterexamples and testing properties of models of first-order theories. This system is supposed to provide a convenient and paperless environment for researchers and students investigating or studying such models and algebraic structures in particular. To implement a first-order theory in the system, a suitable first-order language.( and some axioms are required. The components of a language are given by a collection of variables, a set of predicate symbols, and a set of operation symbols. Variables and operation symbols are used to build terms. Terms, predicate symbols, and the usual logical connectives are used to build formulas. A first-order theory now consists of a language together with a set of closed formulas, i.e. formulas without free occurrences of variables. The set of formulas is also called the axioms of the theory. The system uses several different formats to allow the user to specify languages, to define axioms and theories and to create models. Besides the obvious operations and tests on these structures, we have introduced the notion of a functor between classes of models in order to generate more co~plex models from given ones automatically. As an example, we will use the system to create several lattices structures starting from a model of the theory of pre-orders.