22 research outputs found
A Textbook Example of International Price Discrimination
We investigate differences in book prices between the United States and other countries. We find that general audience books are similarly priced internationally, but textbooks are substantially more expensive in the United States (often more than double the price). This disparity is much more pronounced for commercial publishers than for university presses. We argue that supply-side factors like cost and market structure can not explain this phenomenon. We discuss several demand-side explanations; our preferred theory is that higher US textbook prices reflect the unique status of the textbook as a centerpiece of US college instruction.international price discrimination, book industry, textbooks
Génération du Code Embarqué a partir de Composants de Haut-niveau Hétérogènes
The work described in this thesis is done in the context of a long term effort at VERIMAG laboratory to build a complete model based tool-chain for the design and implementation of embedded systems. We follow a layered approach that distinguishes the application level from the architectural/implementation level. The application is described in a high-level language that is independent of implementation details. The application is then mapped to a specified architecture using a number of techniques so that the desired properties of the high level description are preserved.In this thesis, the application is described in Simulink/Stateflow, a wide-spread modeling language that has become a de-facto standard in many industrial domains, such as automotive. At the architectural level we consider single-processor, multi-tasking software implementations. Multi-tasking means that the application software is divided into a number of processes that are scheduled by a real-time operating system, according to some preemptive scheduling policy, such as static-priority or earliest deadline first.Between these two layers we add an intermediate representation layer, based on the synchronous language Lustre, developed at VERIMAG for the last 25 years. This intermediate layer permits us to take advantage of a number of tools developed for Lustre, such as simulators, model-checkers, test generators and code generators.In a first part of the thesis, we study how to translate automatically Simulink/Stateflow models into Lustre. For Simulink this is mostly straightforward, however it still requires sophisticated algorithms for the inference of type and timing information. The translation of Stateflow is much harder for a number of reasons; first Stateflow presents a number of semantically ``unsafe'' features, including non-termination of a synchronous cycle or dependence of semantics on the graphical layout. Second, Stateflow is an automata-based, imperative language, whereas Lustre is a dataflow language. For the first set of problems we propose a number of statically verifiable conditions that define a ``safe'' subset of stateflow. For the second set of problems we propose a set of techniques to encode automata and sequential code into dataflow equations.In the second part of the thesis, we study the problem of implementing synchronous designs in the single-processor multi-tasking architecture described above. The crucial issue is how to implement inter-task communication so that the semantics of the synchronous design are preserved. Standard implementations, using single buffers protected by semaphores to ensure atomicity, or other, lock-free, protocols proposed in the literature do not preserve the synchronous semantics. We propose a new buffering scheme that preserves the synchronous semantics and is also lock-free. We also show that this scheme is optimal in terms of buffer usage.Le travail décrit dans cette thèse fait partie d'un effort de recherche au laboratoire VERIMAG pour créer une chaîne d'outils basée sur modèles (model-based) pour la conception et l'implantation des systèmes embarquées. Nous utilisons une approche en trois couches, qui séparent le niveau d'application du niveau implantation/architecture. L'application est décrite dans un langage de haut niveau qui est indépendante des détails d'implantation. L'application est ensuite transférée à l'architecture d'exécution en utilisant des techniques spécifiques pour que les propriétés demandées soient bien préservées.Dans cette thèse, l'application est décrite en Simulink/Stateflow, un langage de modélisation très répandu dans le milieu de l'industrie, comme celui de l'automobile. Au niveau de l'architecture, nous considérons des implantation sur une plate-forme "mono-processeur" et "multi-tâches". Multi-tâches signifie que l'application est répartie en un nombre des tâches qui sont ordonnées par un système d'exploitation temps-réel (RTOS) en fonction d'une politique d'ordonnancement préemptive comme par exemple la priorité statique (static-priority SP) ou la date-limite la plus proche en priorité (earliest deadline first EDF).Entre ces deux couches, on rajoute une couche de représentation intermédiaire basée sur le langage de programmation synchrone Lustre, développé à VERIMAG durant les 25 dernières années. Cette représentation intermédiaire permet de profiter des nombreux outils également développés à VERIMAG tels que des simulateurs, des générateurs de tests, des outils de vérification et des générateurs de code.Dans la première partie de cette thèse, on étudie comment réaliser une traduction automatique de modèle Simulink/Stateflow en modèles Lustre. Coté Simulink, le problème est relativement simple mais nécessite néanmoins l'utilisation d'algorithmes sophistiqués pour inférer correctement les informations de temps et de types (de signaux) avant de générer les variables correspondantes dans le programme Lustre. La traduction de Stateflow est plus difficile à cause d'un certain nombre de raisons ; d'abord Stateflow présent un certain nombre de comportements "non-sûr" tels que la non-terminaison d'un cycle synchrone ou des sémantiques qui dépendent de la disposition graphique des composants sur un modèle. De plus Stateflow est un langage impératif, tandis que Lustre un langage de flots de données. Pour le premier problème nous proposons un ensemble de conditions vérifiables statiquement servant à définir un sous-ensemble "sûr" de Stateflow. Pour le deuxième type de problèmes nous proposons un ensemble de techniques pour encoder des automates et du code séquentiel en équations de flots de données.Dans la deuxième partie de la thèse, on étudie le problème de l'implantation de programmes synchrones dans l'architecture mono-processeur et multi-tâche décrite plus haut. Ici, l'aspect le plus important est comment implanter les communications entre tâches de manière à ce que la sémantique synchrone du système soit préservée. Des implantations standards, utilisant des buffers de taille un, protégés par des sémaphores pour assurer l'atomicité, ou d'autres protocoles "lock-free" proposés dans la littérature ne préservent pas la sémantique synchrone. Nous proposons un nouveau schéma de buffers, qui préserve la sémantique synchrone tout en étant également "lock-free". Nous montrons de plus que ce schéma est optimal en terme d'utilisation des buffers
A memory-optimal buffering protocol for preservation of synchronous semantics under preemptive scheduling
Recently, we have proposed a set of buffering schemes to preserve the semantics of a synchronous program when the latter is implemented as a set of multiple tasks running under preemptive scheduling. These schemes, however, are not optimal in terms of memory (buffer usage). In this paper we propose a new protocol which generalizes the previous schemes. The new protocol is not only semantics-preserving but also memory-optimal in two senses: first, in terms of the number of buffers required to preserve semantics in the worst case (i.e., for the “worst ” possible arrival/execution pattern of the tasks); second, in terms of the number of buffers required to preserve semantics for any arrival/execution pattern and at any time, assuming no knowledge of future arrivals
Génération du Code Embarqué a partir de Composants de Haut-niveau Hétérogènes
The work described in this thesis is done in the context of a long term effort at VERIMAG laboratory to build a complete model based tool-chain for the design and implementation of embedded systems. We follow a layered approach that distinguishes the application level from the architectural/implementation level. The application is described in a high-level language that is independent of implementation details. The application is then mapped to a specified architecture using a number of techniques so that the desired properties of the high level description are preserved. In this thesis, the application is described in Simulink/Stateflow, a wide-spread modeling language that has become a de-facto standard in many industrial domains, such as automotive. At the architectural level we consider single-processor, multi-tasking software implementations. Multi-tasking means that the application software is divided into a number of processes that are scheduled by a real-time operating system, according to some preemptive scheduling policy, such as static-priority or earliest deadline first. Between these two layers we add an intermediate representation layer, based on the synchronous language Lustre, developed at VERIMAG for the last 25 years. This intermediate layer permits us to take advantage of a number of tools developed for Lustre, such as simulators, model-checkers, test generators and code generators. In a first part of the thesis, we study how to translate automatically Simulink/Stateflow models into Lustre. For Simulink this is mostly straightforward, however it still requires sophisticated algorithms for the inference of type and timing information. The translation of Stateflow is much harder for a number of reasons; first Stateflow presents a number of semantically unsafe'' features, including non-termination of a synchronous cycle or dependence of semantics on the graphical layout. Second, Stateflow is an automata-based, imperative language, whereas Lustre is a dataflow language. For the first set of problems we propose a number of statically verifiable conditions that define a safe'' subset of stateflow. For the second set of problems we propose a set of techniques to encode automata and sequential code into dataflow equations. In the second part of the thesis, we study the problem of implementing synchronous designs in the single-processor multi-tasking architecture described above. The crucial issue is how to implement inter-task communication so that the semantics of the synchronous design are preserved. Standard implementations, using single buffers protected by semaphores to ensure atomicity, or other, lock-free, protocols proposed in the literature do not preserve the synchronous semantics. We propose a new buffering scheme that preserves the synchronous semantics and is also lock-free. We also show that this scheme is optimal in terms of buffer usage.Le travail décrit dans cette thèse fait partie d'un effort de recherche au laboratoire VERIMAG pour créer une chaîne d'outils basée sur modèles (model-based) pour la conception et l'implantation des systèmes embarquées. Nous utilisons une approche en trois couches, qui séparent le niveau d'application du niveau implantation/architecture. L'application est décrite dans un langage de haut niveau qui est indépendante des détails d'implantation. L'application est ensuite transférée à l'architecture d'exécution en utilisant des techniques spécifiques pour que les propriétés demandées soient bien préservées. Dans cette thèse, l'application est décrite en Simulink/Stateflow, un langage de modélisation très répandu dans le milieu de l'industrie, comme celui de l'automobile. Au niveau de l'architecture, nous considérons des implantation sur une plate-forme "mono-processeur" et "multi-tâches". Multi-tâches signifie que l'application est répartie en un nombre des tâches qui sont ordonnées par un système d'exploitation temps-réel (RTOS) en fonction d'une politique d'ordonnancement préemptive comme par exemple la priorité statique (static-priority SP) ou la date-limite la plus proche en priorité (earliest deadline first EDF). Entre ces deux couches, on rajoute une couche de représentation intermédiaire basée sur le langage de programmation synchrone Lustre, développé à VERIMAG durant les 25 dernières années. Cette représentation intermédiaire permet de profiter des nombreux outils également développés à VERIMAG tels que des simulateurs, des générateurs de tests, des outils de vérification et des générateurs de code. Dans la première partie de cette thèse, on étudie comment réaliser une traduction automatique de modèle Simulink/Stateflow en modèles Lustre. Coté Simulink, le problème est relativement simple mais nécessite néanmoins l'utilisation d'algorithmes sophistiqués pour inférer correctement les informations de temps et de types (de signaux) avant de générer les variables correspondantes dans le programme Lustre. La traduction de Stateflow est plus difficile à cause d'un certain nombre de raisons ; d'abord Stateflow présent un certain nombre de comportements "non-sûr" tels que la non-terminaison d'un cycle synchrone ou des sémantiques qui dépendent de la disposition graphique des composants sur un modèle. De plus Stateflow est un langage impératif, tandis que Lustre un langage de flots de données. Pour le premier problème nous proposons un ensemble de conditions vérifiables statiquement servant à définir un sous-ensemble "sûr" de Stateflow. Pour le deuxième type de problèmes nous proposons un ensemble de techniques pour encoder des automates et du code séquentiel en équations de flots de données. Dans la deuxième partie de la thèse, on étudie le problème de l'implantation de programmes synchrones dans l'architecture mono-processeur et multi-tâche décrite plus haut. Ici, l'aspect le plus important est comment implanter les communications entre tâches de manière à ce que la sémantique synchrone du système soit préservée. Des implantations standards, utilisant des buffers de taille un, protégés par des sémaphores pour assurer l'atomicité, ou d'autres protocoles "lock-free" proposés dans la littérature ne préservent pas la sémantique synchrone. Nous proposons un nouveau schéma de buffers, qui préserve la sémantique synchrone tout en étant également "lock-free". Nous montrons de plus que ce schéma est optimal en terme d'utilisation des buffers.GRENOBLE1-BU Sciences (384212103) / SudocSudocFranceF
Ακροδεξιά και Ακροδεξιός Λόγος στις Εθνικές Εκλογές του 2019
Σκοπός της εργασίας είναι ο εντοπισμός και η ανάλυση του περιεχομένου και των ρητορικών στρατηγικών στον προεκλογικό λόγο της ελληνικής ακροδεξιάς στις Εθνικές Εκλογές του 2019. Με τον τρόπο αυτό επιχειρείται η κατανόηση τόσο των βαθύτερων ιδεολογικών και πολιτικών διαφορών μεταξύ της Ελληνικής Λύσης και της Χρυσής Αυγής, όσο και των ευκαιριών που αντλούν από το επίκαιρο και ιστορικό πλαίσιο προκειμένου να εξορθολογήσουν και να νομιμοποιήσουν την πολιτική τους ατζέντα. Ο ακροδεξιός λόγος στηρίζεται κυρίως σε υπαινιγμούς και λογικοφανή επιχειρήματα, επιδιώκει τον σκανδαλισμό μέσω της ακραίας ρητορικής, ενώ παραμένει αμφίσημος, δίχως ρητό πολιτικό και ιδεολογικό περιεχόμενο. Αξιοποιώντας διαδεδομένες αφηγήσεις για την ιστορία, το μεταναστευτικό, τη διεθνή πολιτική της χώρας, τα αξιακά κοινωνικά ζητήματα, την οικονομία και τη Συμφωνία των Πρεσπών, τις οποίες μοιράζεται είτε με προηγούμενες κομματικές εκδοχές της ελληνικής ακροδεξιάς είτε με τα κατεστημένα μετριοπαθή κόμματα και τον τύπο, δημιουργεί δίπολα τα οποία χρησιμοποιεί για τη νομιμοποίηση ακραίων πολιτικών θέσεων που στρέφονται κατά των πολιτικών δικαιωμάτων και των ανθρώπινων ελευθεριών. Η κύρια διαφορά μεταξύ του Κ. Βελόπουλου και του Ν. Μιχαλολιάκου δεν βρίσκεται στον ρατσισμό, στον εθνικισμό ή στο νατιβισμό που αναπτύσσουν αλλά στην πολιτική προοπτική εντός της οποίας εντάσσονται αυτά. Η Χρυσή Αυγή παραμένει μέχρι και το 2019 πιστή στον ελιτιστικό συγκεντρωτισμό και τον εθνικοσοσιαλισμό, ως μία ιδιαίτερη περίπτωση κόμματος «παλαιάς ακροδεξιάς». Η Ελληνική Λύση εμφανίζεται περισσότερο ως εκπρόσωπος της ευρωπαϊκής ριζοσπαστικής δεξιάς, όπως αυτή αναπτύσσεται στα πλαίσια ενός νέου τέταρτου κύματος ακροδεξιάς.
Translating Discrete-Time Simulink to Lustre
We present a method of translating discrete-time Simulink models to Lustre programs. Our method consists of three steps: type inference, clock inference and hierarchical bottom-up translation. In the process, we explain and formalize the typing and timing mechanisms of Simulink. The method has been implemented in a prototype tool called S2L. The tool has been used in the context of a European research project to translate two automotive controller models provided by Audi