Concurrency-mønstre i indlejrede systemer Temadag om Embeddede systemer Teknologisk Institut, 6. december 2004

Størrelse: px
Starte visningen fra side:

Download "Concurrency-mønstre i indlejrede systemer Temadag om Embeddede systemer Teknologisk Institut, 6. december 2004"

Transkript

1 Concurrency-mønstre i indlejrede systemer Temadag om Embeddede systemer Teknologisk Institut, 6. december 2004 Finn Overgaard Hansen, Ingeniørhøjskolen i Århus foh@iha.dk Version: Agenda Problemet Ønskerne Løsningsforslag RTOS OO abstraktioner Opsummering Slide 2 1

2 Problemet Udvikling af embeddede systemer Programmeres i C og i stigende omfang i C++ Stigende anvendelse af Objektorienterede metoder Anvendelse af UML som modelleringssprog og som dokumentation [UML-2.0] Anvendelse af et Realtidsoperativsystem (RTOS), der har et C API Sproget C++ mangler dsv. sproglige konstruktioner, der understøtter multiprogrammering Impedansproblemet OOA/OOD modellering af tråde og kommunikation med klasser i C++ Implementering vha. RTOSs C-API Slide 3 Ønskerne Vi vil gerne kunne foretage en sømløs implementering af vores OO design og dets concurrency mekanismer Vi vil gerne kunne udvikle embeddede systemer på en udviklingsmaskine (f.eks. en Windows PC eller en Linux PC), der er forskellig fra target-maskinen (µc/µp) Der er ofte langt bedre værktøjer til rådighed på denne platform Vi vil gerne kunne teste så meget som muligt af det embeddede system på udviklingsmaskinen Med teststubbe der simulerer den rigtige HW Med anvendelse af maskinens operativsystem for test af concurrency Det skal efterfølgende være nemt at flytte applikationen over på targetmaskinen Det er ofte også ønskeligt at kunne portere applikationen til en anden targetplatform Medfører meget ofte også skift af RTOS Man ønsker at denne portering kun vedrører få og lokaliserede dele af koden Slide 4 2

3 OO RTOS indkapsling OO RTOS Abstraction Layer C++ application RTOS (C) C++ application RTOS (C) µprocessor/ µcontroller µprocessor/ µcontroller Slide 5 OO RTOS Abstraction Layer Application classes OO RTOS Abstraction Layer Real Time Operating System (RTOS) or Real Time Kernel Slide 6 3

4 Nogle løsningsmuligheder Anvendelse af Concurrency mønstre Thread, Monitor [POSA2], Active Object [POSA2] Udviklet som Wrapper Facades til RTOS, [POSA2] mønster Anvendelse af ACE framework [ACE] En C++ open source implementering af [POSA2] wrapper facade mm. Anvendelse af et Real-Time CASE værktøj med kodegenerering Rhapsody fra firmaet [ILogix] Rational Rose Technial Developer fra [IBM-Rational] (den tidligere Rational Rose Real-Time) JThreads/C++, Java-like Threads for C++ JThreads/C++ is a registered trademark of IONA Technologies, [IONA], Version 2.0.0b1, 30 Oct Part of Orbacus ORB available for Windows, Unix, Linux, Solaris Slide 7 Two useful OS Abstractions RTOS abstraction Thread virtual void run() #enter() #exit() Monitor «Thread» User thread class +run() «Monitor» User class +operation1() +operation2() Slide 8 4

5 Monitor Object Multiple threads of control accessing the same object concurrently UML Stereotype Annotations «Thread» Thread1 «Monitor» Passive object «Thread» Thread2 Active objects «Thread» Thread3 Slide 9 Multiprogrammerings eksempel (UML 2.0) «Monitor» Input Device «Thread» XX Output Device1 «Thread» Producer «Monitor» FifoQueue «Monitor» Configuration Data «Thread» Consumer «Thread» Configuration maintainer Output Device2 Slide 10 5

6 RTKernel Thread Class (C++) class Thread public: Thread(char* threadname,int threadpriority, int threadstacksize,); virtual void run()=0; // NB! Pure virtual virtual void start(); void sleep(int millisecs) virtual ~Thread(); static void RTKAPI threadmapper(void* p) ((Thread *)p)->run(); // call of task loop function private: int stacksize; ; int priority: char* name; RTKTaskHandle handle; RTKernel: RTOS fra [OnTime] Slide 11 RTKernel Thread implementation // Inheritance version Thread::Thread(char* threadname,int threadpriority, int threadstacksize) name= threadname; priority= threadpriority; stacksize= threadstacksize; char* name; handle= 0; void Thread::start() // create & start thread if (handle ==0) handle= RTKRTLCreateThread(Thread::threadMapper, priority,stacksize,0, this, name); void Thread::sleep(int millisec) RTKDelay(CLKMilliSecsToTicks(milliSec)); Slide 12 6

7 Anvendelse af Thread Class i Producer (1) #include Thead.h class Producer : public Thread public: Producer(char* threadname,int threadpriority, int stacksize) : Thread(threadName,threadPriority,threadStackSize) ~Producer(); virtual void run(); private: // ; // implementation of thread loop Slide 13 Anvendelse af Thread Class i Producer (2) class Producer : public Thread public: Producer(char* threadname, int threadpriority, int stacksize, InputDevice *pid,configurationdata *pcd,fifoqueue *pfq) : Thread(threadName,threadPriority,threadStackSize), pinputdevice(pid), pconfigurationdata(pcd), pfifoqueue(pfq) ~Producer(); virtual void run(); // implementation of thread loop private: InputDevice *pinputdevice; ConfigurationData *pconfigurationdata; FifoQueue *pfifoqueue; ; Slide 14 7

8 Producer Thread - loop void Producer::run() int sleeptime; while (1) sleeptime= pconfigurationdata->getsleeptime(); speed= pinputdevice->getvalue(); // do some calculation pfifoqueue->put(speed); sleep(sleeptime); Slide 15 Example of a main program int main() // create monitor objects InputDevice inputdevice; ConfigurationData configurationdata; FifoQueue fifoqueue; ; // create Producer thread Producer myproducer( ProducerThread, MAX_PRIORITY, StackSize5k, &inputdevice, &configurationdata,&fifoqueue); // create other threads // Consumer myconsumer =. // start treads myproducer.start(); myconsumer.start(); // main task loop while (1) ; Slide 16 8

9 Monitor Object Pattern Structure (POSA2) Client 2..* Monitor Object sync_method1() sync_methodn() enter() exit() Monitor uses 1 * uses 1 * Monitor Condition wait() notify() notify_all() [POSA2] Needed to implement wait in a monitor Slide 17 Implementation Strategier for simpel Monitor «Monitor» Passive object Without use of The Scoped Locking Idiom Monitor #enter() #exit() Passive object Operation() operation() mymonitor.enter() // critical section mymonitor.exit() Passive object Operation() operation() enter() // critical section exit() 1 mymonitor Monitor enter() exit() Slide 18 9

10 Problemer med Monitor operationer Every public monitor operation accessed by clients should start with acquiring the lock (enter monitor or acquire) and end with releasing the lock (exit monitor or release) The programmer could forget it in some return path The solution is not exception-safe Slide 19 Solution: Scoped Locking C++ Idiom (POSA2) Define a guard class whose constructor acquires a lock when control enters a scope and whose destructor automatically releases the lock when control leaves the scope void MonitorClassX::operation() Thread_Mutex_Guard myguard(*threadmutex); // Critical section code // return; // destructor called automatically [POSA2] Slide 20 10

11 Anvendelse af Guard class «Monitor» UserClass 1 «uses» 1 Et objekt pr. igangværende operationskald Thread_Mutex_Guard Thread_Mutex_Guard() ~Thread_Mutex_Guard() acquire(): void release(): void 1 Thread_Mutex Thread_Mutex() ~Thread_Mutex() acquire(): void release(): void acquire/release eller enter/exit [POSA2] Slide 21 Thread_Mutex_Guard Class class Thread_Mutex_Guard public: Thread_Mutex_Guard(Thread_Mutex &lock) : lock_(&lock), owner_(false) acquire(); void acquire() lock_->acquire(); owner_=true; void release() if (owner_) owner_=false; lock_->release(); ~Thread_Mutex_Guard() release(); private: Thread_Mutex *lock_; // Pointer to our lock bool owner_; // is lock held by this object? [POSA2] ; // disallowing copy and assignment Thread_Mutex_Guard(const Thread_Mutex_Guard &); void operator=(const Thread_Mutex_Guard &); Slide 22 11

12 Thread_Mutex Example (Solaris imp.) class Thread_Mutex public: Thread_Mutex() mutex_init(&mutex_,usync_thread,0); ~Thread_Mutex() mutex_destroy(&mutex_); void acquire() mutex_lock(&mutex_); void release() mutex_unlock(&mutex_); private: // Solaris-specific Mutex mechanism mutex_t mutex_; ; // disallow copying and assignment Thread_Mutex(const Thread_Mutex &); void operator=(const Thread_Mutex &); friend class Thread_Condition; [POSA2] Slide 23 Tread_Condition Example (Solaris imp.) class Thread_Condition public: Thread_Condition(const Thread_Mutex &m) : mutex_(m) cond_init(&cond_, USYNC_THREAD, 0); ~Thread_Condition() cond_destroy(&cond_); void wait(time_value *timeout= 0) cond_timedwait(&cond_, &mutex_.mutex_, timeout==0? 0 : timeout->msec()); void notify() cond_signal(&cond_); void notify_all() cond_broadcast(&cond_); private: condt_t cond_; // SOLARIS condition variable const Thread_Mutex &mutex_; ; [POSA2] Slide 24 12

13 Abstract Factory (GoF) AbstractFactory Client CreateProductA() CreateProductB() AbstractProductA ConcreteFactory1 CreateProductA() CreateProductB() ConcreteFactory2 CreateProductA() CreateProductB() ProductA2 ProductA1 AbstractProductB «create» ProductB2 ProductB1 «create» Slide 25 Anvendelse af AbstractFactory «Singleton» RTOSFactory createthread() createmonitor() // etc. Client Thread RTKernelThread Monitor Win32Factory createthread() createmonitor() RTKernelFactory createthread() createmonitor() RTKernelMonitor Slide 26 13

14 Main program med abstract factory int main(int argc, char *argv[]) RTOSFactory *rtosfactory; //.. if (strcmp(osstring, RTKernel )==0) rtosfactory= RTKernelFactory::Instance(); else if (strcmp(osstring, Win32 ) ==0) rtosfactory= Win32Factory::Instance(); // Create of Monitor objects InputDevice inputdevice; ConfigurationData configurationdata; FifoQueue fifoqueue; Producer myproducer(&inputdevice,&configurationdata,&fifoqueue); Thread *producertread= rtosfactory->createthread(myproducer, ProducerThread, HIGH_PRIORITY, StackSize5k); // etc. Slide 27 To alternative løsninger Som i det forrige eksempel: Producer myproducer(&inputdevice,&configurationdata,&fifoqueue); Thread *producertread= rtosfactory->createthread(myproducer, ProducerThread, HIGH_PRIORITY, StackSize5k); Alternativt integreret i Producer klassen Producer::Producer(&inputDevice,&configurationData,&fifoQueue) producertread= rtosfactory->createthread(this, ProducerThread, HIGH_PRIORITY, StackSize5k); Slide 28 14

15 «invoke» POSA2 Active Object Design Pattern Proxy method_1() method_n() Scheduler dispatch() insert() Activation List insert() remove() «instantiate» «obtain result from» Client Future «instantiate» «write to» Concrete MethodReq1 Method Request can_run() call() * «execute» Concrete MethodReqN Servant method_1() method_n() [POSA2] Slide 29 Rhapsody OSAL: OS Abstraction Layer The OSAL consists of a set of interfaces (abstract classes) that provide all the required operating system services for the application, including: Tasking services Synchronization services Message queues Communication port Timer service OSAL Slide 30 15

16 Rhapsody supporterede operativsystemer C++ Borland Linux Microsoft, MicrosoftDLL MicrosoftWinCE MSStandardLibrary OsePPCDiab, OseSFK PsosPPC, PsosX86 QNXNeutrinoCW, QNXNeutrinoGCC Solaris2, Solaris2GNU VxWorks C Microsoft PsosPPC PsosX86 VxWorks Java JDK Slide 31 Portering af Rhapsody til MIT_OS <env>=mit_os Kræver udvikling af disse filer Slide 32 16

17 Java JThreads/C++ (1) C++ Java-like Threads for C++ Slide 33 Java JThreads/C++ (2) C++ Slide 34 17

18 Java Character Buffer (1) public class CharacterBuffer private char[] data_ = null; private int len_ = 0; synchronized public void addchar(char c) if(data_ == null len_ == data_.length) byte[] newdata = new byte[len_+128]; if (data_!= null) System.arraycopy(data_, 0, newdata, 0, len_); data_ = newdata; data_[len_++] = c; Slide 35 C++ JTreads CharacterBuffer (2) class CharacterBuffer : public JTCMonitor char* data_; int len_; int max_; public: CharacterBuffer(): data_(0), len_(0), max_(0) ~CharacterBuffer()delete[] data_; void addchar(char c) JTCSynchronized synchronized(*this); if (len_ >= max_) char* newdata = new char[len_+128]; memcpy(newdata, data_, len_); delete[] data_; data_ = newdata; max_ += 128; data_[len_++] = c; Slide 36 18

19 Opsummering Anvendelse af et OO RTOS abstraktionslag kan medføre en sømløs implementering af et OO design Anvendelse af Thread og Monitor konceptet giver en mere sikker (typecheck) og simplere multiprogrammering Der findes flere løsningsmuligheder Concurrency mønstre er en hjælp ved udvikling af eget OO RTOS lag og ved anvendelse af kommercielle eller Open Source løsninger Applikationerne bliver dog afhængige af det anvendte OO RTOS lag Slide 37 References [POSA2] Pattern-Oriented Software Architecture Volume 2. Patterns for Concurrent and Networked Objects. Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Bushmann, Wiley 2000 [GoF] Design Patterns, Gamma et.al, Addison-Wesley 1995 [UML-2.0]: Unified Modeling Language Ver. 2.0 se [ACE]: Adaptive Communication Environment - [IONA]: [ILogix]: [IBM-Rational]: ibm.com/software/awdtools/developer/technical/ [OnTime] Embedded RTOS for x86 systems, Slide 38 19

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...

Læs mere

Real-time programming safety in Java and Ada

Real-time programming safety in Java and Ada Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger

Læs mere

3C03 Concurrency: Model-based Design

3C03 Concurrency: Model-based Design 3C03 Concurrency: Model-based Design Wolfgang Emmerich 1 Outline Role of Modelling in System Development Refining Models into Designs FSP Actions and Operations FSP Processes and Threads FSP Processes

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Common Language Runtime. Multithreading

Common Language Runtime. Multithreading Common Language Runtime Multithreading Multithreading i.net Dedicated threads Programmøren kontrollerer starttidspunkt, levetid m.m. for den enkelte thread. Pooled threads Threads lånes fra en pulje af

Læs mere

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Citrix CSP og Certificate Store Provider

Citrix CSP og Certificate Store Provider Project Name Document Title TDC Citrix Citrix og Certificate Store Provider Version Number 1.0 Status Release Author jkj Date 5-10-2006 Trademarks All brand names and product names are trademarks or registered

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads

Læs mere

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance) Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

PMDK PC-Side Basic Function Reference (Version 1.0)

PMDK PC-Side Basic Function Reference (Version 1.0) PMDK PC-Side Basic Function Reference (Version 1.0) http://www.icpdas.com PMDK PC-Side Basic Function Reference V 1.0 1 Warranty All products manufactured by ICPDAS Inc. are warranted against defective

Læs mere

Modern Concurrency Abstractions for C#

Modern Concurrency Abstractions for C# Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

Distribuerte Objekter. Våren 2010 Professor II Eric Jul F

Distribuerte Objekter. Våren 2010 Professor II Eric Jul F Distribuerte Objekter Våren 2010 Professor II Eric Jul F5 2010-04-26 Velkommen Eric Jul, Professor II, til daglig: Bell Labs, Dublin, Ireland Tor Ivar Johansen, hjelpelærer Deltagelse I Forelæsningerne

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

Læs mere

Singleton pattern i C#

Singleton pattern i C# Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

Introduktion til design patterns.

Introduktion til design patterns. Introduktion til design patterns. Genbrug. Pattern languges i arkitektur. Standardbeskrivelse af design patterns. Oversigt over design patterns. Observer. Composite. Decorator. Abstract Factory. Patterns

Læs mere

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1 Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

UML modelbaseret softwareudvikling af indlejrede systemer

UML modelbaseret softwareudvikling af indlejrede systemer UML modelbaseret softwareudvikling af indlejrede systemer Foredrag i Dansk Selskab for Datateknik, Syddansk Universitet Sønderborg 23. september 2003. ved Finn Overgaard Hansen, Ingeniørdocent, Ingeniørhøjskolen

Læs mere

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,

Læs mere

CONNECTING PEOPLE AUTOMATION & IT

CONNECTING PEOPLE AUTOMATION & IT CONNECTING PEOPLE AUTOMATION & IT Agenda 1) Hvad er IoT 2) Hvilke marked? 1) Hvor stor er markedet 2) Hvor er mulighederne 3) Hvad ser vi af trends i dag Hvad er IoT? Defining the Internet of Things -

Læs mere

CHAPTER 8: USING OBJECTS

CHAPTER 8: USING OBJECTS Ruby: Philosophy & Implementation CHAPTER 8: USING OBJECTS Introduction to Computer Science Using Ruby Ruby is the latest in the family of Object Oriented Programming Languages As such, its designer studied

Læs mere

02-03-2012. Sesam Automationstrend. Spørgsmål til leverandørerne? New Automation Technology

02-03-2012. Sesam Automationstrend. Spørgsmål til leverandørerne? New Automation Technology New Automation Technology Sesam Automationstrend Sesam Automationstrend 1 Spørgsmål til leverandørerne? Hvorledes håndteres kundekrav til udviklingsplatformen, og hvorledes håndteres kundernes specielle

Læs mere

IBM WebSphere Operational Decision Management

IBM WebSphere Operational Decision Management IBM WebSphere Operational Decision Management 8 0 29., WebSphere Operational Decision Management 8, 0, 0. Copyright IBM Corporation 2008, 2012. ........... 1 :......... 1 1: Decision Center....... 3 1

Læs mere

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

Læs mere

Programmering af sensor netværk

Programmering af sensor netværk Programmering af sensor netværk PC Programmering 101 En PC er typisk udstyret med: en 32/64 bit CPU Har en masse RAM En harddisk En skærm Et antal I/O porte og Er på netværk. Den benytter BIOS (Basic Input/Output

Læs mere

Netværksmålinger. - en introduktion! Netteknik. TCP - IP - Ethernet

Netværksmålinger. - en introduktion! Netteknik. TCP - IP - Ethernet Netværksmålinger - en introduktion! Netteknik TCP - IP - Ethernet 1 DNS eksempel På en ældre Windows 7 pc sker følgende deault ved DNS opslag: HOSTS filen kigges igennem DNS + DNS Suffix checkes LLMNR

Læs mere

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager. Planen for idag Synkroniseringsmekanismer Kritiske regioner Semaforer: Binære semaforer Tællesemaforer Beskedsemaforer Prioritetsinvertering Låse (spinlocks) sikrer udelelig adgang Barrierer synkroniseringspunkt

Læs mere

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag Hvem er vi? Kursus Introduktion Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom

Læs mere

Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management

Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management Udfordringen Top down Lederskab visioner Buttom up Fakta om Informi GIS 90 medarbejdere Full-size IT hus; salg/rådgivning/

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

Black Jack --- Review. Spring 2012

Black Jack --- Review. Spring 2012 Black Jack --- Review Spring 2012 Simulation Simulation can solve real-world problems by modeling realworld processes to provide otherwise unobtainable information. Computer simulation is used to predict

Læs mere

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret. Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling

Læs mere

2a. Conceptual Modeling Methods

2a. Conceptual Modeling Methods ICT Enhanced Buildings Potentials IKT og Videnrepræsentationer - ICT and Knowledge Representations. 2a. Conceptual Modeling Methods Cand. Scient. Bygningsinformatik. Semester 2, 2010. CONTENT Conceptual

Læs mere

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787

Læs mere

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav. Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet

Læs mere

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Portal Registration. Check Junk Mail for activation  . 1 Click the hyperlink to take you back to the portal to confirm your registration Portal Registration Step 1 Provide the necessary information to create your user. Note: First Name, Last Name and Email have to match exactly to your profile in the Membership system. Step 2 Click on the

Læs mere

Introduction til.net remoting i C#

Introduction til.net remoting i C# Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab

Læs mere

Mandatory Assignment 1

Mandatory Assignment 1 Mandatory Assignment 1 Morten Franck Peter Hansen 9. oktober 2003 Gruppe 4, Parallelle Systemer (02220) Indhold 1 Trin 1 Petri Net 1 1.1 Model af pass().................................... 1 1.2 Model

Læs mere

Processer og koordinering. dopsys 1

Processer og koordinering. dopsys 1 Processer og koordinering dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne): Multiprogrammering og time-sharing (60 erne): dopsys 2 Motivation.. parallelle

Læs mere

IBM WebSphere Operational Decision Management

IBM WebSphere Operational Decision Management IBM WebSphere Operational Decision Management 8 0 45., WebSphere Operational Decision Management 8, 0, 0. Copyright IBM Corporation 2008, 2012. ........... 1 1:........ 2....... 3 Event Runtime...... 11...........

Læs mere

CONNECTING PEOPLE AUTOMATION & IT

CONNECTING PEOPLE AUTOMATION & IT CONNECTING PEOPLE AUTOMATION & IT Agenda 1) Hvad er IoT 2) Hvilke marked? 1) Hvor stor er markedet 2) Hvor er mulighederne 3) Hvad ser vi af trends i dag Hvad er IoT? Defining the Internet of Things -

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Webkorpora: Yahoo API og perl

Webkorpora: Yahoo API og perl Webkorpora: Yahoo API og perl Jakob Halskov jh.id@cbs.dk Ph.d.-studerende Terminologi og korpuslingvistik den 21. februar 2006 1. Hvad er et API? 2. Hent din egen udviklernøgle! 3. Gennemgang af koden

Læs mere

Koordinering. dopsys

Koordinering. dopsys Koordinering At indføre flertrådethed (1) når tråde tages i brug opstår typisk konflikter (et velkendt eksempel er errno ) 2 At indføre flertrådethed (2) en del konflikter kan afhjælpes med thread-local

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus Introduktion til Microsoft R Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus Agenda Introduktion til R Data Scientists Microsoft R implementering R + SQL SQL + R Hvem er jeg Steen Dybboe Selvstændig konsulent

Læs mere

Object-Relational Mapping

Object-Relational Mapping Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel

Læs mere

Embedded controller, almen.

Embedded controller, almen. Ver. 310807 s. 1 Bilag 3 Valgfri specialefagskatalog Data- og kommunikationsuddannelsen Undervisningsministeriet September 2007 /Steen Albertsen Ver. 310807 s. 2 Embedded controller, almen. Varighed 1

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form

Læs mere

Datatekniker med programmering som speciale H5

Datatekniker med programmering som speciale H5 Datatekniker med programmering som speciale H5 H5 består af et selvstændigt projekt som du definerer. Styringen af projektet er i centrum her, og ikke selve softwaren. H5 varer ti uger bestående af ni

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA UML-Light (Note: UML-Light T33, ver. 2004) Finn Overgaard Hansen, IHA Programmering PRG + Semesterprojekter PRJ+PRJ2 Version: 20--2004 Indhold Første del: Introduktion til UML-Light og UML Klasser og objekter

Læs mere

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances.

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances. System Model Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances. Each process utilizes a resource as follows: request use e.g., request

Læs mere

Eksempel: et ordresystem note 5 Lagdeling s. 1

Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar

Læs mere

Processer og koordinering

Processer og koordinering Processer og koordinering.. fortsat dopsys 1 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Teknologispredning i sundhedsvæsenet DK ITEK: Sundhedsteknologi som grundlag for samarbejde og forretningsudvikling

Teknologispredning i sundhedsvæsenet DK ITEK: Sundhedsteknologi som grundlag for samarbejde og forretningsudvikling Teknologispredning i sundhedsvæsenet DK ITEK: Sundhedsteknologi som grundlag for samarbejde og forretningsudvikling 6.5.2009 Jacob Schaumburg-Müller jacobs@microsoft.com Direktør, politik og strategi Microsoft

Læs mere

Principper for Samtidighed og Styresystemer

Principper for Samtidighed og Styresystemer Principper for Samtidighed og Styresystemer Kursusgang 12: Device drivere mt@cs.aau.dk Ph.D.-studerende Distribuerede og Indlejrede Systemer Institut for Datalogi Aalborg Universitet 17. maj 2010 Intro

Læs mere

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

Læs mere

IPv6 Application Trial Services. 2003/08/07 Tomohide Nagashima Japan Telecom Co., Ltd.

IPv6 Application Trial Services. 2003/08/07 Tomohide Nagashima Japan Telecom Co., Ltd. IPv6 Application Trial Services 2003/08/07 Tomohide Nagashima Japan Telecom Co., Ltd. Outline Our Trial Service & Technology Details Activity & Future Plan 2 Outline Our Trial Service & Technology Details

Læs mere

Hvilket sprog er hurtigst

Hvilket sprog er hurtigst Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet

Læs mere

Boost Concept Check Library

Boost Concept Check Library Boost Concept Check Library Kasper Egdø and Konstantin Barkaia Department of Computer Science University of Copenhagen Boost Concept Check Library p.1/19 Eksempel #include #include int

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Web- og serverprogrammering Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute Sortering fra A-Z Henrik Dorf Chefkonsulent SAS Institute Hvorfor ikke sortering fra A-Å? Det er for svært Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å?

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) list af processer i ready_a tilstand. dopsys 2 Re: Schedulering af processer.. administration af CPU-resursen.

Læs mere

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser

Læs mere

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) processer i ready_a, ready_s, eller running tilstand. dopsys 2 Re: Schedulering af processer.. administration

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer 2. Processer og tråde 3. Synkroniseringsmetoder og IPC 4. Memory management 5. IO og devicedrivere 6. Analyse og design af embedded

Læs mere

Kursusarbejde 2 Grundlæggende Programmering

Kursusarbejde 2 Grundlæggende Programmering Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................

Læs mere

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet. Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth

Læs mere

Oracle PL/SQL. Overview of PL/SQL

Oracle PL/SQL. Overview of PL/SQL Oracle PL/SQL John Ortiz Overview of PL/SQL Oracle's Procedural Language extension to SQL. Support many programming language features. If-then-else, loops, subroutines. Program units written in PL/SQL

Læs mere

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Introduktion til OO* og UML

Introduktion til OO* og UML Introduktion til OO* og UML Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Hvad er OO*? UML Essensen af objekt-orienteret analyse og design: klassebegrebet Relationer mellem objekter

Læs mere

Patient Simulator DPSIMU2. Projektrapport

Patient Simulator DPSIMU2. Projektrapport Patient Simulator DPSIMU2 Projektrapport Teknisk IT efterår 2004 Ingeniørhøjskolen i Århus 10.12.2004 Vejleder: Finn Overgaard Hansen Projekt af gruppe DPSIMU2: Henrik Jensen 20022464 Almir Mesanovic 20023894

Læs mere

UNISONIC TECHNOLOGIES CO.,

UNISONIC TECHNOLOGIES CO., UNISONIC TECHNOLOGIES CO., 3 TERMINAL 1A NEGATIVE VOLTAGE REGULATOR DESCRIPTION 1 TO-263 The UTC series of three-terminal negative regulators are available in TO-263 package and with several fixed output

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn CURRICULUM VITAE Personlige oplysninger Navn Fødselsår 1964 LinkedIn Michael Alrøe http://www.linkedin.com/in/alroe Uddannelse 1988 Dataingeniør, Ingeniørhøjskolen Århus Teknikum 1985 Student (Matematik/Fysik),

Læs mere

Rigtig SQL Programmering

Rigtig SQL Programmering Rigtig SQL Programmering 1 SQL i Rigtige Programmer Indtil nu har vi brugt SQL direkte i kommandolinje promt/gui program, hvor vi kan lave forespørgsler til databasen I virkeligheden: Programmer kontakter

Læs mere

Softwareudvikling: Miljøer

Softwareudvikling: Miljøer Softwareudvikling: Miljøer Præsentation af mig Praktiske oplysninger Overblik Host-target setup UNIX, historisk UNIX egenskaber UNIX ulemper UNIX, netværk, X11, brugerflader Windows fordele/ulemper Øvelse

Læs mere

Operativsystemer - dopsys

Operativsystemer - dopsys Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger

Læs mere

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et

Læs mere