12 research outputs found

    The construction of high-performance virtual machines for dynamic languages

    Get PDF
    Dynamic languages, such as Python and Ruby, have become more widely used over the past decade. Despite this, the standard virtual machines for these languages have disappointing performance. These virtual machines are slow, not because methods for achieving better performance are unknown, but because their implementation is hard. What makes the implementation of high-performance virtual machines difficult is not that they are large pieces of software, but that there are fundamental and complex interdependencies between their components. In order to work together correctly, the interpreter, just-in-time compiler, garbage collector and library must all conform to the same precise low-level protocols. In this dissertation I describe a method for constructing virtual machines for dynamic languages, and explain how to design a virtual machine toolkit by building it around an abstract machine. The design and implementation of such a toolkit, the Glasgow Virtual Machine Toolkit, is described. The Glasgow Virtual Machine Toolkit automatically generates a just-in-time compiler, integrates precise garbage collection into the virtual machine, and automatically manages the complex inter-dependencies between all the virtual machine components. Two different virtual machines have been constructed using the GVMT. One is a minimal implementation of Scheme; which was implemented in under three weeks to demonstrate that toolkits like the GVMT can enable the easy construction of virtual machines. The second, the HotPy VM for Python, is a high-performance virtual machine; it demonstrates that a virtual machine built with a toolkit can be fast and that the use of a toolkit does not overly constrain the high-level design. Evaluation shows that HotPy outperforms the standard Python interpreter, CPython, by a large margin, and has performance on a par with PyPy, the fastest Python VM currently available

    Parallelization of Dynamic Languages: Synchronizing Built-in Collections

    Get PDF
    Dynamic programming languages such as Python and Ruby are widely used, and much effort is spent on making them efficient. One substantial research effort in this direction is the enabling of parallel code execution. While there has been significant progress, making dynamic collections efficient, scalable, and thread-safe is an open issue. Typical programs in dynamic languages use few but versatile collection types. Such collections are an important ingredient of dynamic environments, but are difficult to make safe, efficient, and scalable. In this paper, we propose an approach for efficient and concurrent collections by gradually increasing synchronization levels according to the dynamic needs of each collection instance. Collections reachable only by a single thread have no synchronization, arrays accessed in bounds have minimal synchronization, and for the general case, we adopt the Layout Lock paradigm and extend its design with a lightweight version that fits the setting of dynamic languages. We apply our approach to Ruby’s Array and Hash collections. Our experiments show that our approach has no overhead on single-threaded benchmarks, scales linearly for Array and Hash accesses, achieves the same scalability as Fortran and Java for classic parallel algorithms, and scales better than other Ruby implementations on Ruby workloads

    My Pet

    Get PDF
    1000pfoten es una red social para animales, sobretodo a los cans, que permite la comunicación entre gente que ama a sus mascotas, y donde pueden crearse un perfil subir fotos, videos, compartir historias, grupos y muchas otras acciones. Esta aplicación también tiene implementada una administración, donde se podrán gestionar los textos para traducirlos al idioma correspondiente, censurar historias, perfiles, creación de usuarios administradores y la creación de las preguntas FAQ. Los principales objetivos que se quieren conseguir con la realización de este proyecto son: • Realizar una página intuitiva, moderna, ágil, dinámica y funcional. • Utilizar y conocer nuevos lenguajes y tecnologías. Como por ejemplo Ruby on Rails, Ajax. • Adaptarla de una manera que forme parte de la nueva generación de aplicaciones Web 2.0 • Poder llevar a la práctica gran parte de la teoría vista en las diferentes asignaturas de la carrera, especialmente las tareas de análisis, diseño e implementación de un proyecto, que van desde que se tiene una idea inicial hasta que esa idea es una realidad, y todos los pasos y planificaciones llevados a cabo para realizarlo. • Dotar a la aplicación de una gran reusabilidad, de tal forma que se puedan implementar mejoras o cambios con relativa facilidad y sin afectar al diseño original. • Saber tratar con el cliente. No siendo ni muy permisivos ni muy restrictivos. • Una vez realizada la aplicación, el cliente este satisfecho con el resultado final

    Profiling de aplicações Web: estudo comparativo entre aplicações Java Web e aplicações RoR

    Get PDF
    Dissertação de mestrado em Engenharia InformáticaO profiling de aplicações Web é uma preocupação da Engenharia de Software mais recente que o já conhecido profiling de programas, e que se apresenta como muito mais complexa dado que, necessariamente,uma correta aplicação Web deve satisfazer o modelo multicamada MVC, para além de garantidamente possuir uma implementação de persistência em bases de dados. Assim, a análise de comportamento e performance é também separável por camadas, pelas interações implementadas entre elas e pela implementação de persistência. Qualquer má implementação de uma camada pode provocar ineficiência, e qualquer má interação entre camadas pode provocar ainda maior ineficiência. Existindo atualmente diversas ferramentas de profiling de aplicações Web, e não havendo um estudo sistemático sobre o que efetivamente medem relativamente a que camada e em que contexto de execução, pretende-se neste trabalho, após uma análise destas ferramentas, sintetizar um conjunto crucial de facetas (características ou propriedades)abrangidas pelas várias ferramentas de profiling ,realizar a sua catalogação por tipos de objectivo de medida e/ou camada, visando construir grelhas específicas de avaliação. Como caso de estudo e experiência de aplicação das grelhas sintetizadas, serão realizados testes de performance multi-faceta a duas aplicações Web, com características diferentes, mas ambas desenvolvidas em Java Web e em RoR. Os resultados do estudo são completamente dependentes dos resultados dos testesrealizados.Profiling of Web applications is a recent concern of Software Engineering that already act profiling programs. Profiling of Web applications presents itself as much more complex because a correct Web application must meet the multi-tier model MVC, apart from the necessary persistence implementation in databases. Therefore, the analysis of behavior and performance must be also separable by layers, by the implemented interactions between them and the implementation of persistence. Any poor implementation of a layer will cause inefficiency, and any bad interactions between layers may cause even greater inefficiency. Nowadays, several tools exist for profiling Web applications, and there is no systematic study on how to effectively measure each layer and each execution context. This work aims to synthetize a crucial set of facets (characteristics or properties) covered by the various profiling tools, to catalog types of objective measurement and/or layer, specific evaluation grids. As a case study and experience in the application of the synthesized grids, multifaceted performance tests will be conducted using two Web applications with different characteristics, both developed in Java Web and RoR. The results of the study are completely dependent on the results of the performed tests

    Razvoj web aplikacija pomoću okruženja Ruby on Rails

    Get PDF
    U ovom radu predstavljen je programski jezik Ruby i okruženje za razvoj web aplikacija Rails. Prikazane su osnovne karakteristike i specifičnosti Rubyja. Pokazano je na koji način Rails koristi REST i MVC arhitekture. Slijedeći konvencije Railsa, vrlo brzo dolazimo do velikog napretka u razvoju aplikacije. Budući da postoje brojna proširenja za često korištene zadatke, stvaranje web aplikacija pomoću Railsa je dodatno olakšano. Velikim brojem ugrađenih metoda programerima pojednostavljuje i skraćuje definiranje konfiguracije.In this work we presented the programming language Ruby and web application framework Rails. Basic and specific characteristics of Ruby were described, along with the way of applying the MVC pattern and REST architecture in Rails. By following the conventions adopted by Rails, web application development can be very fast. Rails provides code extensions for common tasks, which speeds up the development even more. Built-in methods reduce and simplify code configuration

    Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού

    Get PDF
    Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2011.Στην παρούσα διπλωματική εργασία, παρουσιάζονται δύο scripting γλώσσες προγραμματισμού PHP και RUBY. Αναλύεται ένα περιβάλλον το οποίο αναπτύσσεται και από τις δύο. Γίνεται αναλυτική περιγραφή της βάσης δεδομένων και όλης της δομής του περιβάλλοντος καθώς και του πηγαίου κώδικα για συγκεκριμένα σενάρια υλοποίησης. Παρουσιάζονται συγκρίσεις μεταξύ των δύο scripting γλωσσών προγραμματισμού με μετρήσεις που αφορούν μνήμη, ταχύτητα και αριθμό γραμμών κώδικα για διάφορα προγράμματα και αλγορίθμους και τέλος γίνονται συγκρίσεις για συγκεκριμένα σενάρια επέκτασης πάνω στο αρχικό περιβάλλον

    Дослідження методів динамічної генерації веб-сайтів на основі мови програмування Ruby

    Get PDF
    Крюков Д.С. Дослідження методів динамічної генерації веб-сайтів на основі мови програмування Ruby : дипломна робота магістра спеціальності 121 Інженерія програмного забезпечення. - Дніпро, 2018Пояснительная записка: 98 стр. , 19 рис., 3 приложения, 50 источников. Объект исследования: динамический генератор веб-сайтов. Цель магистерской работы: создание усовершенствованной методики динамической генерации веб-сайтов. Методы исследования: при решении поставленной задачи использовались научные достижения в областях разработки информационных систем и программного обеспечения, рассматривались существующие разработки в области генерации веб-сайтов. Научная новизна полученных результатов состоит в проведении анализа и выявлении недостатков традиционного подхода к статической генерации веб- сайтов, а также в создании методики динамической генерации веб-сайтов. Практическое значение работы заключается в создании программных модулей, программного продукта, который способен работать в соответствии с методикой динамической генерации веб-сайтов. Область применения. Разработанная методика может применяться для решения широкого спектра задач создания веб-страниц с динамическим контентом или меняющимся функциональным назначением. Значение работы и выводы. Усовершенствованная методика позволяет создавать сети распространения контента со значительным сокращением как материальных затрат, так и временных, что подтверждается разработанным программным продуктом в данной магистерской работе. Прогнозы по развитию исследований. Разработать универсальную методику обработки программного кода как данных для динамического изменения поведения и содержимого легковесных удаленных клиентов. Разработать комплекс программных продуктов для развертывания и управления сетью динамически генерируемых веб-сайтов.Расширить методику для применения на разных платформах и языках программирования. В разделе «Экономика» рассчитаны трудоемкость разработки программного обеспечения, расходы на создание ПО и длительность его разработки.Пояснювальна записка: 98 стор., 19 рис., 3 додатки, 50 джерел. Об'єкт дослідження: динамічний генератор веб-сайтів. Мета магістерської роботи: створення вдосконаленої методики динамічної генерації веб-сайтів. Методи дослідження: при вирішенні поставленого завдання використовувалися наукові досягнення в областях розробки інформаційних систем та програмного забезпечення, розглядалися існуючі розробки в області генерації веб-сайтів. Наукова новизна отриманих результатів полягає в проведенні аналізу та виявленні недоліків традиційного підходу до статичної генерації веб-сайтів, а також у створенні методики динамічної генерації веб-сайтів. Практичне значення роботи полягає в створенні програмних модулів, програмного продукту, який здатний працювати відповідно до методики динамічної генерації веб-сайтів. Галузь використання. Розроблена методика може використовуватись для вирішення широкого спектра завдань створення веб-сторінок з динамічним контентом або змінним функціональним призначенням. Значення роботи і висновки. Вдосконалена методика дозволяє створювати мережі розповсюдження контенту зі значним скороченням як матеріальних витрат, так і часових, що підтверджується розробленим програмним продуктом в даній магістерській роботі. Прогнози щодо розвитку досліджень. Розробити універсальну методику обробки програмного коду як даних для динамічної зміни поведінки і вмісту легких віддалених клієнтів. Розробити комплекс програмних продуктів для розгортання та управління мережею динамічно генеруються веб-сайтов. Розширити методику для застосування на різних платформах та мовах програмування. У розділі «Економіка» розраховані трудомісткість розробки програмного забезпечення, витрати на створення ПО та тривалість його розробки.Explanatory note: 98 pages, 19 fig, 3 applications, 50 sources. Research object: dynamic website generator. Purpose of diploma project: creation improved methodology for the dynamic generation of Web sites. Research methods: the scientific achievements in the areas of development of information systems and software were used to solve the task, and the existing developments in the field of web site generation were considered. Scientific novelty of the results is to analyze and identify the shortcomings of the traditional approach to the static generation of websites, as well as to create a methodology for the dynamic generation of Web sites. Practical importance of the work lies in the creation of software modules, a software product that is able to work in accordance with the method of dynamic generation of websites. Scope of application. Developed methodology can be used to solve a wide range of tasks for creating web pages with dynamic content or changing functional purpose. Meaning of the work and conclusions. Improved methodology allows creating content distribution networks with a significant reduction in both material costs and time, which is confirmed by the developed software product in this master's work. Forecasts for the development of research. Develop a universal methodology for processing program code as data for dynamically changing the behavior and content of lightweight remote clients. Develop a set of software products for the deployment and management of a network of dynamically generated websites. Extend the methodology for application on different platforms and programming languages. In the section "Economics", the complexity of software development, software development costs and the duration of its development are calculated

    Дослідження методів динамічної генерації веб-сайтів на основі мови програмування Ruby

    Get PDF
    Крюков Д.С. Дослідження методів динамічної генерації веб-сайтів на основі мови програмування Ruby : дипломна робота магістра спеціальності 121 Інженерія програмного забезпечення. - Дніпро, 2018Пояснительная записка: 98 стр. , 19 рис., 3 приложения, 50 источников. Объект исследования: динамический генератор веб-сайтов. Цель магистерской работы: создание усовершенствованной методики динамической генерации веб-сайтов. Методы исследования: при решении поставленной задачи использовались научные достижения в областях разработки информационных систем и программного обеспечения, рассматривались существующие разработки в области генерации веб-сайтов. Научная новизна полученных результатов состоит в проведении анализа и выявлении недостатков традиционного подхода к статической генерации веб- сайтов, а также в создании методики динамической генерации веб-сайтов. Практическое значение работы заключается в создании программных модулей, программного продукта, который способен работать в соответствии с методикой динамической генерации веб-сайтов. Область применения. Разработанная методика может применяться для решения широкого спектра задач создания веб-страниц с динамическим контентом или меняющимся функциональным назначением. Значение работы и выводы. Усовершенствованная методика позволяет создавать сети распространения контента со значительным сокращением как материальных затрат, так и временных, что подтверждается разработанным программным продуктом в данной магистерской работе. Прогнозы по развитию исследований. Разработать универсальную методику обработки программного кода как данных для динамического изменения поведения и содержимого легковесных удаленных клиентов. Разработать комплекс программных продуктов для развертывания и управления сетью динамически генерируемых веб-сайтов.Расширить методику для применения на разных платформах и языках программирования. В разделе «Экономика» рассчитаны трудоемкость разработки программного обеспечения, расходы на создание ПО и длительность его разработки.Пояснювальна записка: 98 стор., 19 рис., 3 додатки, 50 джерел. Об'єкт дослідження: динамічний генератор веб-сайтів. Мета магістерської роботи: створення вдосконаленої методики динамічної генерації веб-сайтів. Методи дослідження: при вирішенні поставленого завдання використовувалися наукові досягнення в областях розробки інформаційних систем та програмного забезпечення, розглядалися існуючі розробки в області генерації веб-сайтів. Наукова новизна отриманих результатів полягає в проведенні аналізу та виявленні недоліків традиційного підходу до статичної генерації веб-сайтів, а також у створенні методики динамічної генерації веб-сайтів. Практичне значення роботи полягає в створенні програмних модулів, програмного продукту, який здатний працювати відповідно до методики динамічної генерації веб-сайтів. Галузь використання. Розроблена методика може використовуватись для вирішення широкого спектра завдань створення веб-сторінок з динамічним контентом або змінним функціональним призначенням. Значення роботи і висновки. Вдосконалена методика дозволяє створювати мережі розповсюдження контенту зі значним скороченням як матеріальних витрат, так і часових, що підтверджується розробленим програмним продуктом в даній магістерській роботі. Прогнози щодо розвитку досліджень. Розробити універсальну методику обробки програмного коду як даних для динамічної зміни поведінки і вмісту легких віддалених клієнтів. Розробити комплекс програмних продуктів для розгортання та управління мережею динамічно генеруються веб-сайтов. Розширити методику для застосування на різних платформах та мовах програмування. У розділі «Економіка» розраховані трудомісткість розробки програмного забезпечення, витрати на створення ПО та тривалість його розробки.Explanatory note: 98 pages, 19 fig, 3 applications, 50 sources. Research object: dynamic website generator. Purpose of diploma project: creation improved methodology for the dynamic generation of Web sites. Research methods: the scientific achievements in the areas of development of information systems and software were used to solve the task, and the existing developments in the field of web site generation were considered. Scientific novelty of the results is to analyze and identify the shortcomings of the traditional approach to the static generation of websites, as well as to create a methodology for the dynamic generation of Web sites. Practical importance of the work lies in the creation of software modules, a software product that is able to work in accordance with the method of dynamic generation of websites. Scope of application. Developed methodology can be used to solve a wide range of tasks for creating web pages with dynamic content or changing functional purpose. Meaning of the work and conclusions. Improved methodology allows creating content distribution networks with a significant reduction in both material costs and time, which is confirmed by the developed software product in this master's work. Forecasts for the development of research. Develop a universal methodology for processing program code as data for dynamically changing the behavior and content of lightweight remote clients. Develop a set of software products for the deployment and management of a network of dynamically generated websites. Extend the methodology for application on different platforms and programming languages. In the section "Economics", the complexity of software development, software development costs and the duration of its development are calculated

    Extempore: The design, implementation and application of a cyber-physical programming language

    Get PDF
    There is a long history of experimental and exploratory programming supported by systems that expose interaction through a programming language interface. These live programming systems enable software developers to create, extend, and modify the behaviour of executing software by changing source code without perceptual breaks for recompilation. These live programming systems have taken many forms, but have generally been limited in their ability to express low-level programming concepts and the generation of efficient native machine code. These shortcomings have limited the effectiveness of live programming in domains that require highly efficient numerical processing and explicit memory management. The most general questions addressed by this thesis are what a systems language designed for live programming might look like and how such a language might influence the development of live programming in performance sensitive domains requiring real-time support, direct hardware control, or high performance computing. This thesis answers these questions by exploring the design, implementation and application of Extempore, a new systems programming language, designed specifically for live interactive programming

    Doctor of Philosophy

    Get PDF
    dissertationPlaces and distributed places bring new support for message-passing parallelism to Racket. This dissertation describes the programming model and how Racket's sequential runtime-system was modified to support places and distributed places. The freedom to design the places programming model helped make the implementation tractable; specifically, the conventional pain of adding just the right amount of locking to a big, legacy runtime system was avoided. The dissertation presents an evaluation of the places design that includes both real-world applications and standard parallel benchmarks. Distributed places are introduced as a language extension of the places design and architecture. The distributed places extension augments places with the features of remote process launch, remote place invocation, and distributed message passing. Distributed places provide a foundation for constructing higher-level distributed frameworks. Example implementations of RPC, MPI, map reduce, and nested data parallelism demonstrate the extensibility of the distributed places API
    corecore