C# Ir VB.NET Palyginimas Taikomųjų Programų Kūrimo Požiūriu

Total Page:16

File Type:pdf, Size:1020Kb

C# Ir VB.NET Palyginimas Taikomųjų Programų Kūrimo Požiūriu VILNIAUS PEDAGOGINIS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Arnoldas Judinas C# ir VB.NET palyginimas taikomųjų programų kūrimo požiūriu Magistro baigiamasis darbas Darbo vadovas – prof. dr. (HP) V. Slivinskas Recenzentas – doc. dr. G. Melničenko Vilnius, 2010 Patvirtinimas Aš, Arnoldas Judinas, Vilniaus pedagoginio universiteto Matematikos ir informatikos fakulteto Informatikos magistrantūros studentas, patvirtinu, kad šį mokslinį darbą rašiau savarankiškai. .............................. ...................... Data Parašas 2 Turinys Patvirtinimas........................................................................................................................ 2 Turinys ............................................................................................................................ 3 Įvadas .............................................................................................................................. 4 Lyginimo kriterijai ...................................................................................................... 4 Hipotezės ..................................................................................................................... 4 Darbo uždaviniai ......................................................................................................... 4 1. Taikomoji programinė įranga .......................................................................................... 5 2. Microsoft .NET karkasas................................................................................................. 6 3. C# ir VB.NET kalbų aprašas ........................................................................................... 9 3.1. Visual Basic .NET .................................................................................................... 9 3.2. C# ........................................................................................................................... 10 3.3. Kalbų privalumai .................................................................................................... 12 3.3.1. VB.NET kalbos privalumai ............................................................................. 12 3.3.2. C# kalbos privalumai ...................................................................................... 13 4. C# ir VB.NET kalbų istorija ......................................................................................... 14 4.1. Visual Basic ir Visual Basic .NET kalbų istorija ................................................... 14 4.2. C# istorija ............................................................................................................... 19 5. C# ir VB.NET kalbų sintaksė ........................................................................................ 20 5.1. Raktiniai žodžiai ..................................................................................................... 20 5.2. Raktiniai žodžiai, išrikiuoti pagal abėcėlę .............................................................. 23 5.3. Kalbų duomenų tipai .............................................................................................. 26 5.4. Operatorių skirtumai .............................................................................................. 27 5.5. Elementarūs kodo fragmentai................................................................................. 28 5.5. C# ir VB.NET kodo fragmentai ............................................................................. 33 6. Programavimo eksperimentai ........................................................................................ 37 6.1. Programų kūrimo aplinka Microsoft Visual Studio ............................................... 37 6.2. Matematinių ir įvesties/išvesties operacijų spartos palyginimas............................ 42 6.3. Householderio transformacija ................................................................................ 47 7. Rezultatai ....................................................................................................................... 51 8. Išvados ........................................................................................................................... 51 Priedas 1. Terminų žodynas .............................................................................................. 52 Priedas 2. .NET kalbos ...................................................................................................... 75 Literatūros šaltiniai ............................................................................................................ 83 Anotacija ........................................................................................................................... 85 Santrauka ........................................................................................................................... 86 Summary ........................................................................................................................... 87 3 Įvadas Darbe nagrinėjamos įvairiais požiūriais lyginamos dvi populiarios Microsoft kompanijos kalbos: VB.NET ir C#. Lyginimo kriterijai Lyginimo kriterijai: • C# ir VB.NET kalbų istorija. Kas yra bendro tarp jų? • Sintaksės panašumai/skirtumai. • Vykdomo kodo greitaveika šiose srityse: o matematinės operacijos; o įvesties/išvesties operacijos;. Hipotezės Buvo iškeltos tokios hipotezės: • taikomųjų programų kūrimo galimybės yra panašios; • integruotos kūrimo aplinkos (IDE) vartotojo sąsaja toks pats, Windows Forms, meniu, mygtukai ir kiti įterpiami valdymo elementai; • kodo, parašyto C# kalba, vykdymo greitis, lyginant su kodu, parašytu Visual Basic .NET kalba bus: o didesnis vykdant matematinius skaičiavimus; o toks pat, vykdant įvesties/išvesties operacijas. Darbo uždaviniai Siekiant tikslo, reikia atlikti šiuos uždavinius: • apibrėžti svarbią sąvoką „taikomoji programa“; • apibūdinti Microsoft .NET platformą; • atlikti abiejų kalbų istorinę apžvalgą; • palyginti kalbų sintaksę; • atlikti programuotojo aplinkos analizę; • eksperimento metu nustatyti C# ir VB.NET vykdomo kodo greitaveiką. 4 1. Taikomoji programinė įranga Šio darbo esmė – dviejų programavimo kalbų analizė taikomųjų programų kūrimo požiūriu. Norint tai daryti, būtina apibrėžti (kiek tai įmanoma) taikomosios programinės įrangos sąvoka. Tai galima padaryti lyginant taikomąją PĮ su sistemine PĮ. Toliau vartosiu sąvokos „programinė įranga“ sinonimą – „programa“. Sisteminės programos skirtos užtikrinti sklandų kompiuterio ir taikomųjų programų darbą [7]. Tiesioginio rezultato vartotojui jos neduoda. Sisteminių programų pavyzdžiai: • operacinė sistema (pvz., FreeBSD, Windows XP); • tvarkyklė (angl. driver , pvz., grafinės plokštės tvarkyklė); • kietų diskų skaidymo programa (pvz., Partition Logic); • kietų diskų defragmentavimo programa (pvz., UltraDefrag); • antivirusinė programa (pvz., Avira AntiVir). Taikomosios programos skirtos vykdyti tam tikras užduotis, susijusias su žmonių veikla. Jos sąveikauja tiesiogiai su vartotoju. [8] Paprastai taikomosios programos negali tiesiogiai prieiti prie kompiuterio resursų ir sąveikauja su aparatine įranga per sistemines programas. Taikomųjų programų pavyzdžiai: • tekstų apdorojimo programa (pvz., Microsoft WordPad); • skaičiuoklė (pvz., Microsoft Excel); • elektroninio pašto programa (pvz., Microsoft Outlook, Eudora); • naršyklė (pvz., Opera, Chrome); • buhalterinės apskaitos programa (pvz., Rivilė) • integruota kūrimo aplinka (pvz., Dev-C++); • nuotraukų ir grafikos peržiūros arba apdorojimo programa (pvz., GIMP); • programa, atkurianti įvairius skaitmeninius įrašus (pvz., WinAmp, GomPlayer); • žaidimas (pvz., Tetris); 5 2. Microsoft .NET karkasas Microsoft .NET karkasas (angl. framework ) – programinis karkasas, skirtas taikomųjų ir tinklo programų kūrimui. .NET yra patentuota Microsoft kompanijos technologija, tačiau po susitarimo su kompanija Novell technologija Mono buvo pripažinta kaip .NET platformos realizacija Unix tipo operacinėse sistemose. Ko gero, svarbiausia idėja, realizuota .NET karkase – modulių, parašytų skirtingomis programavimo kalbomis, suderinamumas. Pvz., kodas, parašytas C++ kalba .NET karkase, gali kreiptis į klasės, parašytos Delphi, metodą. Kiekviena .NET biblioteka turi duomenis apie savo versiją, tokiu būdu galima išvengti versijų nesuderinamumo problemos. NET programų kūrimo terpės (plačiau žr. straipsnį „IDE“ terminų žodyne): • Microsoft Visual Studio; • SharpDevelop; • MonoDevelop; • Elipse; • Borland Developer Sturio (kalbos: Delphi for .NET, C#); Programas galima kurti ir bet kokiame tekstų doroklyje, naudojant konsolinį kompiliatorių. Panašiai kaip Java technologijoje, .NET terpė sukuria bait-kodą, skirtą vykdyti virtualioje mašinoje, kuri vadinasi CLR (angl. Common Language Runtime ). Bait-kodo naudojimas leidžia turėti daugiaplatformiškumą. .NET programų rašymo ir vykdymo procesas vyksta taip: • kodo rašymas viena iš .NET kalbų; • parašyto kodo transliavimas į virtualios mašinos įeities kalbą – bait-kodą, kuris vadinama MSIL (angl. Microsoft Intermediate Language ) arba vėlesniu pavadinimu CIL (angl. Common Intermediate Language ); • CIL kodas iškart prieš taikomosios programos paleidimą transformuojamas į mašininį kodą specialiu JIT (angl. Just-in-time) kompiliatoriumi; • gautas mašininis kodas vykdomas aparatiniame procesoriuje; 6 Taip pat yra galimybė pačiam sukompiliuoti CIL kodą į mašininį, pasinaudojus programa NGen.exe (pvz., jeigu manoma, kad kompiuteryje, kuriame bus vykdoma parašyta programa,
Recommended publications
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • Liste Von Programmiersprachen
    www.sf-ag.com Liste von Programmiersprachen A (1) A (21) AMOS BASIC (2) A# (22) AMPL (3) A+ (23) Angel Script (4) ABAP (24) ANSYS Parametric Design Language (5) Action (25) APL (6) Action Script (26) App Inventor (7) Action Oberon (27) Applied Type System (8) ACUCOBOL (28) Apple Script (9) Ada (29) Arden-Syntax (10) ADbasic (30) ARLA (11) Adenine (31) ASIC (12) Agilent VEE (32) Atlas Transformatikon Language (13) AIMMS (33) Autocoder (14) Aldor (34) Auto Hotkey (15) Alef (35) Autolt (16) Aleph (36) AutoLISP (17) ALGOL (ALGOL 60, ALGOL W, ALGOL 68) (37) Automatically Programmed Tools (APT) (18) Alice (38) Avenue (19) AML (39) awk (awk, gawk, mawk, nawk) (20) Amiga BASIC B (1) B (9) Bean Shell (2) B-0 (10) Befunge (3) BANCStar (11) Beta (Programmiersprache) (4) BASIC, siehe auch Liste der BASIC-Dialekte (12) BLISS (Programmiersprache) (5) Basic Calculator (13) Blitz Basic (6) Batch (14) Boo (7) Bash (15) Brainfuck, Branfuck2D (8) Basic Combined Programming Language (BCPL) Stichworte: Hochsprachenliste Letzte Änderung: 27.07.2016 / TS C:\Users\Goose\Downloads\Softwareentwicklung\Hochsprachenliste.doc Seite 1 von 7 www.sf-ag.com C (1) C (20) Cluster (2) C++ (21) Co-array Fortran (3) C-- (22) COBOL (4) C# (23) Cobra (5) C/AL (24) Coffee Script (6) Caml, siehe Objective CAML (25) COMAL (7) Ceylon (26) Cω (8) C for graphics (27) COMIT (9) Chef (28) Common Lisp (10) CHILL (29) Component Pascal (11) Chuck (Programmiersprache) (30) Comskee (12) CL (31) CONZEPT 16 (13) Clarion (32) CPL (14) Clean (33) CURL (15) Clipper (34) Curry (16) CLIPS (35)
    [Show full text]
  • IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002
    © November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 .Net Surbhi Bhardwaj Dronacharya College of Engineering Khentawas, Haryana INTRODUCTION as smartphones. Additionally, .NET Micro .NET Framework (pronounced dot net) is Framework is targeted at severely resource- a software framework developed by Microsoft that constrained devices. runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language WHAT IS THE .NET FRAMEWORK? interoperability(each language can use code written The .NET Framework is a new and revolutionary in other languages) across several programming platform created by Microsoft for languages. Programs written for .NET Framework developingapplications. execute in a software environment (as contrasted to hardware environment), known as Common It is a platform for application developers. Language Runtime (CLR), an application virtual It is a Framework that supports Multiple machine that provides services such as Language and Cross language integration. security, memory management, and exception handling. FCL and CLR together constitute .NET IT has IDE (Integrated Development Framework. Environment). FCL provides user interface, data access, database Framework is a set of utilities or can say connectivity, cryptography, web building blocks of your application system. application development, numeric algorithms, .NET Framework provides GUI in a GUI and network communications. Programmers manner. produce software by combining their own source code with .NET Framework and other libraries. .NET is a platform independent but with .NET Framework is intended to be used by most new help of Mono Compilation System (MCS). applications created for the Windows platform. MCS is a middle level interface. Microsoft also produces an integrated development .NET Framework provides interoperability environment largely for .NET software called Visual between languages i.e.
    [Show full text]
  • What Is Dot Net (Pdf)
    What is .NET 1 outline • .NET framework • CLR • CLI, CIL, MSIL • ADO.NET, ASP.NET, MVC, webforms, razor • Mono • .NET Core • .NET Standard 2 .NET framework • Software framework • First released early 2000’s • “consists of the common language runtime (CLR) and the .NET Framework class library (FCL)” [1] • Provides a “code execution environment” • Various runtime hosts for the CLR [2] • ASP.NET (via ISAPI filter) • Executable • Can write your own 3 CLR • The virtual machine that manages execution of .NET programs [3] • Memory • Threads • Code trust • Type checking • pinvoke • JIT compiling to execute on current hardware 4 .NET Framework and CLR • Framework and CLR are different [4] • Can technically run different framework versions within the same CLR version • E.g. Windows XP only supports framework up to 4.0, running 4.5 apps is theoretically possible (with some hex editing of the binary) as long as calls are restricted to methods that were the same in 4.0 (e.g., no extensions) [5] • Recent framework updates have been focused on • Optimization (including SIMD) • Accessories (stylus, touch screen, etc) • Security 5 CLR, CLI, CIL • Common Language Infrastructure (CLI) • Open standard that describes executable code [6] • Common Intermediate Language (CIL) [7] • Aka “IL” • Formerly MSIL • Object oriented assembly language • Platform independent • A compiler takes source code and • Converts it to CIL using the CLI specification • Adds any required metadata (type information, etc) • This is an “assembly” 6 CLR, CLI, CIL • Visual Studio tooling
    [Show full text]
  • Eagle: Tcl Implementation in C
    Eagle: Tcl Implementation in C# Joe Mistachkin <[email protected]> 1. Abstract Eagle [1], Extensible Adaptable Generalized Logic Engine, is an implementation of the Tcl [2] scripting language for the Microsoft Common Language Runtime (CLR) [3]. It is designed to be a universal scripting solution for any CLR based language, and is written completely in C# [4]. Su- perficially, it is similar to Jacl [5], but it was written from scratch based on the design and imple- mentation of Tcl 8.4 [6]. It provides most of the functionality of the Tcl 8.4 interpreter while bor- rowing selected features from Tcl 8.5 [7] and the upcoming Tcl 8.6 [8] in addition to adding en- tirely new features. This paper explains how Eagle adds value to both Tcl/Tk and CLR-based applications and how it differs from other “dynamic languages” hosted by the CLR and its cousin, the Microsoft Dy- namic Language Runtime (DLR) [9]. It then describes how to use, integrate with, and extend Ea- gle effectively. It also covers some important implementation details and the overall design phi- losophy behind them. 2. Introduction This paper presents Eagle, which is an open-source [10] implementation of Tcl for the Microsoft CLR written entirely in C#. The goal of this project was to create a dynamic scripting language that could be used to automate any host application running on the CLR. 3. Rationale and Motivation Tcl makes it relatively easy to script applications written in C [11] and/or C++ [12] and so can also script applications written in many other languages (e.g.
    [Show full text]
  • Comparative Studies of Programming Languages; Course Lecture Notes
    Comparative Studies of Programming Languages, COMP6411 Lecture Notes, Revision 1.9 Joey Paquet Serguei A. Mokhov (Eds.) August 5, 2010 arXiv:1007.2123v6 [cs.PL] 4 Aug 2010 2 Preface Lecture notes for the Comparative Studies of Programming Languages course, COMP6411, taught at the Department of Computer Science and Software Engineering, Faculty of Engineering and Computer Science, Concordia University, Montreal, QC, Canada. These notes include a compiled book of primarily related articles from the Wikipedia, the Free Encyclopedia [24], as well as Comparative Programming Languages book [7] and other resources, including our own. The original notes were compiled by Dr. Paquet [14] 3 4 Contents 1 Brief History and Genealogy of Programming Languages 7 1.1 Introduction . 7 1.1.1 Subreferences . 7 1.2 History . 7 1.2.1 Pre-computer era . 7 1.2.2 Subreferences . 8 1.2.3 Early computer era . 8 1.2.4 Subreferences . 8 1.2.5 Modern/Structured programming languages . 9 1.3 References . 19 2 Programming Paradigms 21 2.1 Introduction . 21 2.2 History . 21 2.2.1 Low-level: binary, assembly . 21 2.2.2 Procedural programming . 22 2.2.3 Object-oriented programming . 23 2.2.4 Declarative programming . 27 3 Program Evaluation 33 3.1 Program analysis and translation phases . 33 3.1.1 Front end . 33 3.1.2 Back end . 34 3.2 Compilation vs. interpretation . 34 3.2.1 Compilation . 34 3.2.2 Interpretation . 36 3.2.3 Subreferences . 37 3.3 Type System . 38 3.3.1 Type checking . 38 3.4 Memory management .
    [Show full text]
  • The Zonnon Project: a .NET Language and Compiler Experiment
    The Zonnon Project: A .NET Language and Compiler Experiment Jürg Gutknecht Vladimir Romanov Eugene Zueff Swiss Fed Inst of Technology Moscow State University Swiss Fed Inst of Technology (ETH) Computer Science Department (ETH) Zürich, Switzerland Moscow, Russia Zürich, Switzerland [email protected] [email protected] [email protected] ABSTRACT Zonnon is a new programming language that combines the style and the virtues of the Pascal family with a number of novel programming concepts and constructs. It covers a wide range of programming models from algorithms and data structures to interoperating active objects in a distributed system. In contrast to popular object-oriented languages, Zonnon propagates a symmetric compositional inheritance model. In this paper, we first give a brief overview of the language and then focus on the implementation of the compiler and builder on top of .NET, with a particular emphasis on the use of the MS Common Compiler Infrastructure (CCI). The Zonnon compiler is an interesting showcase for the .NET interoperability platform because it implements a non-trivial but still “natural” mapping from the language’s intrinsic object model to the underlying CLR. Keywords Oberon, Zonnon, Compiler, Common Compiler Infrastructure (CCI), Integration. 1. INTRODUCTION: THE BRIEF CCI and b) to experiment with evolutionary language HISTORY OF THE PROJECT concepts. The notion of active object was taken from the Active Oberon language [Gut01]. In addition, two This is a technical paper presenting and describing new concurrency mechanisms have been added: an the current state of the Zonnon project. Zonnon is an accompanying communication mechanism based on evolution of the Pascal, Modula, Oberon language syntax-oriented protocols , borrowed from the Active line [Wir88].
    [Show full text]
  • Diffsharp an AD Library for .NET Languages
    DiffSharp An AD Library for .NET Languages Atılım Güneş Baydin1 Barak A. Pearlmutter2 Jeffrey Mark Siskind3 1University of Oxford [email protected] 2Maynooth University [email protected] 3Purdue University [email protected] http://www.robots.ox.ac.uk/~gunes/ AD2016, September 13, 2016 The .NET “ecosystem” Languages The main .NET languages: C#, F#, VB, C++/CLI Around 30 other (somewhat obscure) languages: F*, Eiffel, A#, ClojureCLR, IronPython, Nemerle, ... https://en.wikipedia.org/wiki/List_of_CLI_languages 1/18 C# Stack Overflow Developer Survey 2015 TIOBE Index, September 2016 http://stackoverflow.com/research/developer-survey-2015 http://www.tiobe.com/tiobe-index/ 2/18 F# An OCaml-based, strongly-typed, functional language, used in computational finance, machine learning Allows us to expose AD as a higher-order API accept first class functions as arguments return derivative functions, which can be arbitrarily nested //A scalar-to-scalar function let f x = sin (sqrt x) //2nd derivative off let f’’ = diff (diff f) // Evaluatef’’ at2 let d = f’’ 2. 3/18 Runtimes Previously: .NET Framework (Windows) and Mono (Linux, Mac OS) Since 27 June 2016: .NET Core 1.0 https://dotnet.github.io/ Open-source (MIT License) Cross-platform (Linux, Mac OS, Windows) 4/18 DiffSharp DiffSharp http://diffsharp.github.io/DiffSharp Deeply-embedded, higher-order, forward and reverse AD Support for nesting, currying High-performance matrix operations (using BLAS/LAPACK/CUDA) Implemented in F#, usable by all .NET languages (helper interface for C# and other procedural
    [Show full text]
  • Extending Actionability in Better Code Hub Suggesting Move Module Refactorings
    Extending Actionability in Better Code Hub Suggesting move module refactorings Teodor Kurtev [email protected] July 14, 2017, 48 pages Supervisor: dr. Ana-Maria Oprescu, [email protected] Host supervisor: dr. Magiel Bruntink, [email protected] Host organisation: Software Improvement Group, Inc., https://www.sig.eu Universiteit van Amsterdam Faculteit der Natuurwetenschappen, Wiskunde en Informatica Master Software Engineering http://www.software-engineering-amsterdam.nl Abstract Undoubtedly, refactoring can have a positive effect on overall system quality, and it is a critical part of the work cycle of every developer. However, finding the right refactoring opportunities can be a difficult task. This is particularly the case for refactorings related to overall system structure. One of the best ways to address such issues is to apply the move module refactoring. In this thesis, we propose a way of automatically detecting refactoring opportunities for move module refactorings in the context of the C# language using a Compiler as a Service (CaaS) - Roslyn. We evaluate our approach using seven open source projects and an expert panel. The results from these validation experiments showed our approach as promising - the group of experts found more than half of the proposed refactorings useful. 1 Contents Abstract 1 Acronyms 5 1 Introduction 6 1.1 Problem analysis....................................... 6 1.2 Research questions...................................... 7 1.3 Solution outline........................................ 8 1.4 Definitions........................................... 8 1.5 Outline ............................................ 8 2 Background 10 2.1 Refactoring .......................................... 10 2.2 Code smells.......................................... 10 2.3 Move module refactoring................................... 11 2.4 Better Code Hub (BCH) and the SIG Maintainability Model .............
    [Show full text]
  • Introduction to .NET, C#, and Visual Studio
    Introduction to .NET, C#, and Visual Studio C# Programming January 8 Part I Administrivia Administrivia • When: Wednesdays 10–11am (and a few Mondays as needed) • Where: Moore 100B • This lab has Windows machines, but feel free to bring laptops • Office Hours: to be announced • Course webpage: http://www.seas.upenn.edu/~cse39905 Course Structure • No quizzes, no exams • Roughly 6 projects • Roughly 2 weeks per project • The final project will be slightly longer and more open-ended • Projects will be due at midnight on the night of the deadline • All assignments should be submitted through the Blackboard Digital Dropbox • Late policy: 15% off each day, up to 3 days late Final Project • Your chance to choose your own project • Brainstorming and planning will begin after spring break • Top projects will be entered into the Xtreme.NET Challenge – hopefully there will be 20 top projects :-) • First prize: Xbox 360! • Judges will include someone from Microsoft recruiting, maybe someone from the C# team • More details to come at http://www.seas.upenn.edu/~cse39905/xtreme Part II What is .NET? The Microsoft .NET Framework • .NET is a development platform that launched in 2000 • Goals include language independence, language integration, web services • Technologies to promote rapid development of secure, connected applications • .NET components include: • Languages (C#, VB, Visual C++, Visual J#, ...) • Common Language Runtime (CLR) • Framework Class Library (FCL) Common Language Runtime • A single runtime environment to execute programs written in any .NET language • Includes a virtual machine • Activates objects, manages memory, performs security checks, collects garbage • To run on the CLR, a language must adhere to a Common Language Specification (CLS) • A language must also build upon base types specified in the Common Type System (CTS) Languages • Language compilers translate source into Microsoft Intermediate Language (MSIL).
    [Show full text]
  • Die C# Schnittstelle Der Referenzattributgrammatik- Gesteuerten Graphersetzungsbibliothek RACR: Übersicht, Anwendung Und Implementierung
    Fakultät Informatik - Institut für Software- und Multimediatechnik TECHNICAL REPORTS ISSN 1430-211X TUD-FI15-06 Oktober 2015 Daniel Langner, Christoff Bürger Fakultät Informatik, Lehrstuhl Softwaretechnologie Die C# Schnittstelle der Referenzattributgrammatik- gesteuerten Graphersetzungsbibliothek RACR: Übersicht, Anwendung und Implementierung Technische Universität Dresden Fakultät Informatik Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie 01062 Dresden Germany Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Entwicklerhandbuch Die C# Schnittstelle der Referenzattributgrammatik-gesteuerten Graphersetzungsbibliothek RACR Übersicht, Anwendung und Implementierung Daniel Langner [email protected] Editor: Christoff Bürger RACR .NET Entwicklerhandbuch RACR Distribution und Homepage: https://github.com/christoff-buerger/racr Danksagung Ich danke Llewellyn ‘Leppie‘ Pritchard, dem Autor der Scheme-VM IronScheme, ohne welche diese Arbeit niemals hätte entstehen können. Er hatte immer ein offenes Ohr und war stets bereit, sein breites CLI-Wissen zu teilen und bei Problemen mit IronScheme weiterzuhelfen. Vorwort Dieses Entwicklerhandbuch beruht auf dem Großem Beleg von Daniel Langner, welcher unter dem Titel RAG-gesteuerte Graphersetzung in der objektorientierten Programmierung am 17. November 2015 beim Lehrstuhl Softwaretechnologie, Institut für Software- und Multimediatechnik, Technische Universität Dresden, eingereicht wurde. Der Große Beleg wurde von Dipl.-inf. Christoff Bürger und Dipl.-Inf. Johannes Mey, unter Aufsicht von Prof. Dr. rer. nat. habil. Uwe Aßmann, betreut und mit sehr gut abgeschlossen. Inhaltsverzeichnis 1. Einleitung 13 1.1. Aufgabenstellung . 14 1.2. Struktur der Arbeit . 14 2. Konzeptionelle und technische Voraussetzungen 15 2.1. Überblick der RAG-gesteuerten Graphersetzung . 15 2.2. Scheme . 16 2.3. Die RACR Scheme-Bibliothek . 17 2.4. Das .NET-Framework und die Common Language Infrastructure . 18 2.5. IronScheme .
    [Show full text]
  • Towards Mathix / Math-X, a Computer Algebra Language That Can Create Its Own Operating System, and That Is Amazingly User- Friendly and Secure
    Towards Mathix / Math-x, a computer algebra language that can create its own operating system, and that is amazingly user- friendly and secure Thomas Colignatus, August 19 2009, some clarifications August 23 2009 http://www.dataweb.nl/~cool Summary Given the current supply and demand for computer languages and systems, there is a clear window of opportunity for the software community to collaborate and create Mathix and Math-x. The base would be Oberon, which itself derives from Algol / Pascal / Modula and which is better designed than Unix / Linux, and which now has the system Bluebottle / A2 at http://bluebottle.ethz.ch. Mathix is defined as Oberon/A2 extended with a suitable computer algebra language (say, CAL). Math-x is defined as Minix ported to Oberon/A2 (via Cyclone) and extended with that CAL. Mathix and Math-x thus can create their own OS. Mathix and Math-x are flexible in that they contain both a strongly typed dialect relevant for OS creation (current Oberon) and a more flexible dialect relevant for the human user (CAL, to be created). The dialects have much syntax in common but the CAL allows more flexibility. The CAL is internally translated into Oberon/A2 which allows compilation as well. 2 2009-08-23-Math-x.nb Note This paper is best understood in the context of my book Elegance with Substance on mathematics education - see http://www.dataweb.nl/~cool/Papers/Math/Index.html. My book advises that each national parliament investigates the stagnation in doing mathematics on the computer in school. This paper suggests how the software community might anticipate on common sense conclusions and start working on improvement.
    [Show full text]