966 resultados para C (Programming Language)
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 ones 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:
Ohjelmoinnin opettaminen yleissivistvn oppiaineena on viime aikoina herttnyt kiinnostusta Suomessa ja muualla maailmassa. Esimerkiksi Suomen opetushallituksen mrittmien, vuonna 2016 kyttn otettavien peruskoulun opintosuunnitelman perusteiden mukaan, ohjelmointitaitoja aletaan opettaa suomalaisissa peruskouluissa ensimmiselt luokalta alkaen. Ohjelmointia ei olla lismss omaksi oppiaineekseen, vaan sen opetuksen on tarkoitus tapahtua muiden oppiaineiden, kuten matematiikan yhteydess. Tm tutkimus ksittelee yleissivistv ohjelmoinnin opetusta yleisesti, ky lpi yleisimpi haasteita ohjelmoinnin oppimisessa ja tarkastelee erilaisten opetusmenetelmien soveltuvuutta erityisesti nuorten oppilaiden opettamiseen. Tutkimusta varten toteutettiin verkkoympristss toimiva, noin 912-vuotiaille oppilaille suunnattu graafista ohjelmointikielt ja visuaalisuutta tehokkaasti hydyntv oppimissovellus. Oppimissovelluksen avulla toteutettiin alakoulun neljnsien luokkien kanssa vertailututkimus, jossa graafisella ohjelmointikielell tapahtuvan opetuksen toimivuutta vertailtiin toiseen opetusmenetelmn, jossa oppilaat tutustuivat ohjelmoinnin perusteisiin toiminnallisten leikkien avulla. Vertailututkimuksessa kahden neljnnen luokan oppilaat suorittivat samankaltaisia, ohjelmoinnin perusksitteisiin liittyvi ohjelmointitehtvi molemmilla opetus-menetelmill. Tutkimuksen tavoitteena oli selvitt alakouluoppilaiden nykyist ohjelmointiosaamista, sit minklaisen vastaanoton ohjelmoinnin opetus alakouluoppilailta saa, onko erilaisilla opetusmenetelmill merkityst opetuksen toteutuksen kannalta ja nkyyk eri opetusmenetelmill opetettujen luokkien oppimistuloksissa eroja. Oppilaat suhtautuivat kumpaankin opetusmenetelmn mynteisesti, ja osoittivat kiinnostusta ohjelmoinnin opiskeluun. Sisllllisesti oppitunneille oli varattu turhan paljon materiaalia, mutta esimerkiksi yhden keskeisimmn aiheen, eli toiston ksitteen oppimisessa aktiivisilla leikeill harjoitellut luokka osoitti huomattavasti graafisella ohjelmointikielell harjoitellutta luokkaa parempaa osaamista oppitunnin jlkeen. Ohjelmakoodin perkkisyyteen liittyv osaaminen oli neljsluokkalaisilla hyvin hallussa jo ennen ohjelmointiharjoituksia. Aiheeseen liittyvn taustatutkimuksen ja luokkien opettajien haastatteluiden perusteella havaittiin koulujen valmiuksien opetussuunnitelmauudistuksen mukaiseen ohjelmoinnin opettamiseen olevan viel heikolla tasolla.
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:
Formal verification of software can be an enormous task. This fact brought some software engineers to claim that formal verification is not feasible in practice. One possible method of supporting the verification process is a programming language that provides powerful abstraction mechanisms combined with intensive reuse of code. In this thesis we present a strongly typed functional object-oriented programming language. This language features type operators of arbitrary kind corresponding to so-called type protocols. Sub classing and inheritance is based on higher-order matching, i.e., utilizes type protocols as basic tool for reuse of code. We define the operational and axiomatic semantics of this language formally. The latter is the basis of the interactive proof assistant VOOP (Verified Object-Oriented Programs) that allows the user to prove equational properties of programs interactively.
Resumo:
Dans le but doptimiser la reprsentation en mmoire des enregistrements Scheme dans le compilateur Gambit, nous avons introduit dans celui-ci un systme dannotations de type et des vecteurs contenant une reprsentation abrge des enregistrements. Ces derniers omettent la rfrence vers le descripteur de type et lentte habituellement prsents sur chaque enregistrement et utilisent plutt un arbre de typage couvrant toute la mmoire pour retrouver le vecteur contenant une rfrence. Limplmentation de ces nouvelles fonctionnalits se fait par le biais de changements au runtime de Gambit. Nous introduisons de nouvelles primitives au langage et modifions larchitecture existante pour grer correctement les nouveaux types de donnes. On doit modifier le garbage collector pour prendre en compte des enregistrements contenants des valeurs htrognes alignements irrguliers, et lexistence de rfrences contenues dans dautres objets. La gestion de larbre de typage doit aussi tre faite automatiquement. Nous conduisons ensuite une srie de tests de performance visant dterminer si des gains sont possibles avec ces nouvelles primitives. On constate une amlioration majeure de performance au niveau de lallocation et du comportement du gc pour les enregistrements typs de grande taille et des vecteurs denregistrements typs ou non. De lgers surcots sont toutefois encourus lors des accs aux champs et, dans le cas des vecteurs denregistrements, au descripteur de type.
Resumo:
Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 8th International Fujaba Days aimed at bringing together Fujaba develop- ers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team.
Resumo:
The flexibility of the robot is the key to its success as a viable aid to production. Flexibility of a robot can be explained in two directions. The first is to increase the physical generality of the robot such that it can be easily reconfigured to handle a wide variety of tasks. The second direction is to increase the ability of the robot to interact with its environment such that tasks can still be successfully completed in the presence of uncertainties. The use of articulated hands are capable of adapting to a wide variety of grasp shapes, hence reducing the need for special tooling. The availability of low mass, high bandwidth points close to the manipulated object also offers significant improvements I the control of fine motions. This thesis provides a framework for using articulated hands to perform local manipulation of objects. N particular, it addresses the issues in effecting compliant motions of objects in Cartesian space. The Stanford/JPL hand is used as an example to illustrate a number of concepts. The examples provide a unified methodology for controlling articulated hands grasping with point contacts. We also present a high-level hand programming system based on the methodologies developed in this thesis. Compliant motion of grasped objects and dexterous manipulations can be easily described in the LISP-based hand programming language.
Resumo:
La gesti de l'aigua residual s una tasca complexa. Hi ha moltes substncies contaminants conegudes per encara moltes per conixer, i el seu efecte individual o collgectiu s difcil de predir. La identificaci i avaluaci dels impactes ambientals resultants de la interacci entre els sistemes naturals i socials s un assumpte multicriteri. Els gestors ambientals necessiten eines de suport pels seus diagnstics per tal de solucionar problemes ambientals. Les contribucions d'aquest treball de recerca sn dobles: primer, proposar l's d'un enfoc basat en la modelitzaci amb agents per tal de conceptualitzar i integrar tots els elements que estan directament o indirectament involucrats en la gesti de l'aigua residual. Segon, proposar un marc basat en l'argumentaci amb l'objectiu de permetre als agents raonar efectivament. La tesi cont alguns exemples reals per tal de mostrar com un marc basat amb agents que argumenten pot suportar diferents interessos i diferents perspectives. Conseqentment, pot ajudar a construir un dileg ms informat i efectiu i per tant descriure millor les interaccions entre els agents. En aquest document es descriu primer el context estudiat, escalant el problema global de la gesti de la conca fluvial a la gestidel sistema urb d'aiges residuals, concretament l'escenari dels abocaments industrials. A continuaci, s'analitza el sistema mitjanant la descripci d'agents que interaccionen. Finalment, es descriuen alguns prototips capaos de raonar i deliberar, basats en la lgica no montona i en un llenguatge declaratiu (answer set programming). s important remarcar que aquesta tesi enllaa dues disciplines: l'enginyeria ambiental (concretament l'rea de la gesti de les aiges residuals) i les cincies de la computaci (concretament l'rea de la intelligncia artificial), contribuint aix a la multidisciplinarietat requerida per fer front al problema estudiat. L'enginyeria ambiental ens proporciona el coneixement del domini mentre que les cincies de la computaci ens permeten estructurar i especificar aquest coneixement.
Resumo:
The most popular endgame tables (EGTs) documenting DTM Depth to Mate in chess endgames are those of Eugene Nalimov but these do not recognise the FIDE 50-move rule 50mr. This paper marks the creation by the first author of EGTs for sub-6-man (s6m) chess and beyond which give DTM as affected by the ply count pc. The results are put into the context of previous work recognising the 50mr and are compared with the original unmoderated DTM results. The work is also notable for being the first EGT generation work to use the functional programming language HASKELL.
Ideological and tensions and contradictions in lower primary English teaching materials in Singapore
Resumo:
The main objective of this thesis work is to develop communication link between Runrev Revolution (IDE) and JADE (Multi-Agent System) through Socket programming using TCP/IP layer. These two independent platforms are connected using socket programming technique. Socket programming is considered to be newly emerging technology among these two platforms, the work done in this thesis work is considered to be a prototype.A Graphical simulation model is developed by salixphere (Company in Hedemora) to simulate logistic problems using Runrev Revolution (IDE). The simulation software/program is called BIOSIM. The logistic problems are complex, and conventional optimization techniques are unlikely very successful. BIOSIM can demonstrate the graphical representation of logistic problems depending upon the problem domains. As this simulation model is developed in revolution programming language (Transcript) which is dynamically typed and English-like language, it is quite slow compared to other high level programming languages. The object of this thesis work is to add intelligent behaviour in graphical objects and develop communication link between Runrev revolution (IDE) and JADE (Multi-Agent System) using TCP/IP layers.The test shows the intelligent behaviour in the graphical objects and successful communication between Runrev Revolution (IDE) and JADE (Multi-Agent System).
Resumo:
We present a method using an extended logical system for obtaining programs from specifications written in a sublanguage of CASL. These programs are correct in the sense that they satisfy their specifications. The technique we use is to extract programs from proofs in formal logic by techniques due to Curry and Howard. The logical calculus, however, is novel because it adds structural rules corresponding to the standard ways of modifying specifications: translating (renaming), taking unions, and hiding signatures. Although programs extracted by the Curry-Howard process can be very cumbersome, we use a number of simplifications that ensure that the programs extracted are in a language close to a standard high-level programming language. We use this to produce an executable refinement of a given specification and we then provide a method for producing a program module that maximally respects the original structure of the specification. Throughout the paper we demonstrate the technique with a simple example.
Resumo:
The paper investigates which of Shannons measures (entropy, conditional entropy, mutual information) is the right one for the task of quantifying information flow in a programming language. We examine earlier relevant contributions from Denning, McLean and Gray and we propose and motivate a specific quantitative definition of information flow. We prove results relating equivalence relations, interference of program variables, independence of random variables and the flow of confidential information. Finally, we show how, in our setting, Shannons Perfect Secrecy theorem provides a sufficient condition to determine whether a program leaks confidential information.
Resumo:
Several agent platforms that implement the belief-desire-intention (BDI) architecture have been proposed. Even though most of them are implemented based on existing general purpose programming languages, e.g. Java, agents are either programmed in a new programming language or Domain-specific Language expressed in XML. As a consequence, this prevents the use of advanced features of the underlying programming language and the integration with existing libraries and frameworks, which are essential for the development of enterprise applications. Due to these limitations of BDI agent platforms, we have implemented the BDI4JADE, which is presented in this paper. It is implemented as a BDI layer on top of JADE, a well accepted agent platform.
Resumo:
The spread of the Web boosted the dissemination of Information Systems (IS) based on the Web. In order to support the implementation of these systems, several technologies came up or evolved with this purpose, namely the programming languages. The Technology Acceptance Model TAM (Davis, 1986) was conceived aiming to evaluate the acceptance/use of information technologies by their users. A lot of studies and many applications have used the TAM, however, in the literature it was not found a mention of the use of such model related to the use of programming languages. This study aims to investigate which factors influence the use of programming languages on the development of Web systems by their developers, applying an extension of the TAM, proposed in this work. To do so, a research was done with Web developers in two Yahoo groups: java-br and python-brasil, where 26 Java questionnaires and 39 Python questionnaires were fully answered. The questionnaire had general questions and questions which measured intrinsic and extrinsic factors of the programming languages, the perceived usefulness, the perceived ease of use, the attitude toward the using and the programming language use. Most of the respondents were men, graduate, between 20 and 30 years old, working in the southeast and south regions. The research was descriptive in the sense of its objectives. Statistical tools, descriptive statistics, main components and linear regression analysis were used for the data analysis. The foremost research results were: Java and Python have machine independence, extensibility, generality and reliability; Java and Python are more used by corporations and international organizations than supported by the government or educational institutions; there are more Java programmers than Python programmers; the perceived usefulness is influenced by the perceived ease of use; the generality and the extensibility are intrinsic factors of programming languages which influence the perceived ease of use; the perceived ease of use influences the attitude toward the using of the programming language