Kapitel 11. Program Skript Att köra program Interpreterande och kompilerande programspråk Att kompilera program

Storlek: px
Starta visningen från sidan:

Download "Kapitel 11. Program Skript Att köra program Interpreterande och kompilerande programspråk Att kompilera program"

Transkript

1 Kapitel 11 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra Skript Om man lägger flera skalkommandon efter varann i en fil blir det ju en samling instruktioner som beskriver något som en dator ska utföra. Detta kallar man ett skalskript (shell script). Man kan köra det genom att skriva bash filnamn eller sh filnamn. Genom att ge ett filnamn som argument till skalet (bash) talar man om att det ska hämta kommandon därifrån. (Standardnamnet för skalet i Unix är sh, men i GNU är det liktydigt med bash.) 11.2 Interpreterande och kompilerande programspråk De flesta program man kör är dock inte textfiler utan binärfiler. De innehåller då instruktioner i en maskinnära form (maskinkod) som kan utföras (exekveras, köras) direkt av datorn. Med datorprogram kan man avse både en sådan binärfil, och även källkoden, så som programmet skrivits i något programspråk i en eller flera textfiler. I de flesta programspråk skriver man instruktioner som ligger långt ifrån den typen av instruktioner som datorn kan utföra direkt. Det finns olika sätt att då få datorn att utföra instruktionerna i källkoden: kompilering och interpretering. Kompilering är att översätta källkoden till maskinkod. Översättningen sker med en kompilator ett särskilt program. Sen kör man den resulterande koden. (Källkoden behövs inte längre för att kunna köra programmet. Men om man behöver göra ändringar i programmet behöver man källkoden igen och får lov att kompilera om den efteråt.) Interpretering är att tolka källkoden bit för bit istället, så som skalet tolkar kommandon i ett skalskript. Ett särskilt program, en interpretator, läser och utför dessa instruktioner. (Det finns även mellanlägen mellan kompilering och interpretering.) 11.3 Att köra program Programmen är filer de också. Om man t. ex. kör bildbearbetningsprogrammet Gimp så är det filen /usr/bin/gimp man kör. Det skulle gå att skriva den fullständiga sökvägen /usr/bin/gimp för att köra det programmet, men det räcker med bara gimp. Om man skriver bara ett namn utan katalog så letar nämligen skalet efter en sådan fil i vissa kataloger (däribland bland annat /bin och /usr/bin). Där ligger de flesta av de program du använt hittills, som t. ex. cat, grep, ls, sed osv. Om programfilen inte ligger i en av dessa kataloger måste man skriva ett längre filnamn där man tar med katalogen, med en fullständig eller relativ sökväg Att kompilera program För att kompilera ett program så kör man i de enklaste fallen en kompilator med källkodsfilen som ar- 113

2 11. PROGRAM gument. Kompilatorn skapar en ny fil som går att köra. Ett större program består normalt en mängd filer som använder sig av varandra på komplicerade sätt, och för att kompilera detta kan det krävas flera steg. I Unix-världen används oftast ett program make för att göra detta. Den kör alla dessa steg i rätt ordning för att tillverka vissa filer. I en fil Makefile finns regler som talar om för den vad den ska göra. Man kan ge argument till make som talar om vad det är man vill»tillverka«med det, men bara make utan argument duger ofta Att installera program På en GNU-dator som man själv administrerar är det i allmänhet enklast att inte kompilera program man ska använda själv, utan istället installera färdigkompilerade program som färdiga paket med filer som läggs ut på rätt ställen på disken. Program som sköter sådant kallas pakethanterare. Detta förutsätter att någon har gjort ett sådant paket som passar till ens system, men är det ett välanvänt program så är det antagligen så. Ett paketsystem som många system, bl. a. vårt, använder heter RPM. Men som vanlig användare utan administratörsrättigheter så kan du oftast inte använda dig av sådant eftersom du inte har rätt att lägga filerna på de centrala ställen där de då är tänkta att hamna. Då får du oftast lov att installera program någonstans under din hemkatalog genom att kompilera dem själv. (Så kan det också vara för att ingen har gjort nåt behändigt paket av just det programmet.) Programmen distribueras då i allmänhet i form av ett (komprimerat) filarkiv som källkoden finns i. Du börjar med att packa upp detta filarkiv och sen se efter om det bland filerna finns någon fil README med allmänna instruktioner eller kanske en fil INSTALL med instruktioner om hur du ska installera programmet. (Dessa filer heter ofta just så, med versaler.) Ofta säger instruktionerna att du ska använda make på något sätt Att installera med make I GNU har det utarbetats en standard för hur installationen går till. Med distributionen av programmet följer det med ett skalskript configure som man börjar med att köra. Då skapas en fil Makefile som är särskilt anpassad för det system man kör på. Efter det kan man kompilera programmet med make och sedan installera det med make install. I det sista steget kopieras filerna ut till olika ställen i filsystemet. Normalt läggs program i /usr/ local/bin/, man-sidor i /usr/local/man/ och diverse andra filer i några andra underkataloger till /usr/local. Men där har vanliga användare inte rätt att lägga filer, så det kommer inte att funka om man inte är systemets administratör! Bland uppgifterna för configure hör att anpassa installationen för den variant av operativsystemet som det kör på just nu. Det gör en mängd tester av vad som finns installerat och inte och hur saker fungerar som fungerar lite olika på olika system. I anropet till configure kan man dessutom tala om olika saker om hur detta program ska kompileras och installeras just denna gång i form av långa väljare. En användbar sådan är --prefix katalognamn för att tala om var programmet och alla dess filer ska installeras, så med t. ex. --prefix ~/pgm installeras själva programmen i ~/pgm/bin/ osv. Man kan förstås använda en annan katalog under ens hemkatalog, eller hemkatalogen själv. Med --prefix ~ hamnar själva programmen i ~/bin osv Upphovsrätt och licenser Upphovsrätt gäller för program, både för källkod och maskinkod, precis som för litterära och konstnärliga verk. Inga som har skrivit program för moderna datorer har dock varit döda i sjuttio år så att upphovsrätten har gått ut för deras verk, så som skett för t. ex. Strindberg och Lenngren. 2 Trots det finns det en mängd program som det står en fritt att använda, kopiera och sprida, eftersom programmens författare uttryckligen givit en tillstånd till detta. Sådant sker i form av en licens där upphovsrättsinnehavarna talar om vad de tillåter. Ett exempel på en förhållandevis kort sådan licens finns i figur Tidigare har jag skrivit att det normala sättet att ge argument till långa väljare är med ett likamedtecken, som --prefix=~/pgm, men just i detta fall ställer det till problem eftersom skalet bara ersätter ~ med ens hemkatalog när det står först i ett argument. 2 Detta är förstås skälet till att texter av dessa figurerat i flera övningar. 114

3 11.6. Upphovsrätt och licenser Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software ), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Figur 11.1: Exempel på en licens som följer med ett fritt program. Citerat från txt av James Clarks företag Thai Open Source Software Center Ltd. I synnerhet är hela operativsystemet GNU sådan»fri programvara«, men för att komma till GNU tar vi först en kort Unixhistoria: Unix Operativsystemet Unix skapades i slutet av 60-talet på Bell Labs i USA. I mitten av 70-talet började det spridas utanför Bell Labs. Det såldes rätt billigt (speciellt till universitet) och gick att köra på relativt billiga datorer (vid en tid när datorer var stora och dyra), vilket bidrog till dess popularitet. Dessutom följde källkoden med så att man kunde se precis hur det fungerade och även införa egna ändringar i systemet. Det ökade populariteten ännu mer i den akademiska världen, där en mängd universitet använde Unix i undervisningen i datorvetenskap. Möjligheten att göra ändringar i koden ledde till att det uppstod en stor mängd varianter av Unix. En viktig variant var BSD (Berkeley Software Distribution) från University of California, Berkeley. Berkeley spred sina tillägg och förändringar fritt, och många använde dessa. På 80-talet tillverkade flera företag olika enanvändardatorer med Unix arbetsstationer. De var mycket kraftfullare och dyrare än den tidens vanliga persondatorer, och innehöll alla lite olika versioner av Unix. De olika tillverkarna skickade med olika tillägg från BSD och andra håll, och skrev också mycket egna tillägg (som inte spreds fritt), så de olika Unix-systemen skilde sig åt så pass mycket så att det inte alltid gick rakt av att flytta ett program från ett system till ett annat, trots att alla var Unix i grunden. En viktig del var fönstersystemet X som spreds fritt från Massachusetts Institute of Technology (MIT) där det var skrivet. Även till detta lade de olika tillverkarna till olika nya finesser, så på olika datorer körde man lite olika versioner av X GNU och fri programvara När Unix var nytt hade de flesta av dess användare möjlighet att läsa koden för att lära sig hur den fungerade och även möjlighet att införa egna ändringar för att få delar av systemet att bete sig annorlunda. Med tiden hade det blivit allt ovanligare. De flesta Unix-användare kom att sitta vid arbetsstationer som till stora delar var som svarta lådor som man inte hade insyn i. Det uppfattades av många som frustrerande vid en tid när en stor del av datoranvändarna var programmerare själva utannonserade Richard M. Stallman på MIT planer på att skriva ett fritt operativsystem som skulle få namnet GNU. Eftersom Unix redan då hade en så stark ställning så valde han att det skulle vara Unix-kompatibelt, dvs. bete sig som Unix trots att det inte var Unix. GNU stod för»gnu s Not Unix«. Snart startades en särskild stiftelse, Free Software Foundation (FSF), för att hålla i projektet och även i övrigt verka för fria program. En del program som redan fanns och som var fria kunde användas. T. ex. bestämde Stallman tidigt att man inte behövde skriva ett nytt fönstersystem eftersom fönstersystemet X var fritt. En del tillägg till Unix som skrivits på Berkeley och andra ställen var också möjliga att återanvända. Men den största delen av koden fick man skriva själva. 115

4 11. PROGRAM Linux Många delar av GNU kom snabbt på plats, och användes som separata delar på andra Unix-system, men en viktig del som kom på efterkälken var den mest centrala delen av operativsystemet, kärnan. Utan den var det inte möjligt att sätta ihop ett helt GNU-system offentliggjordes Linux av den finlandssvenske studenten Linus Torvalds. Det var ett litet Unixliknande system, framförallt inspirerat av Minix, ett tidigare minimalt Unixliknande system, gjort särskilt för undervisning i operativsystem av Andrew S. Tanenbaum i Holland. Inom kort sattes hela GNU/Linux-system samman som använde Linux som operativsystemskärna istället för HURD som var den fortfarande bara halvfärdiga kärna som skulle användas i GNU. Oftast kallas sådana system bara för Linux-system, efter den kärna som används. Detta gick att köra på vanliga persondatorer, som annars oftast körde MS-DOS från Microsoft. Persondatorerna hade med tiden blivit så pass kraftfulla att de kunde klara ett mer krävande system Unix och Unix-liknande system idag En stor del av Unix-liknande system idag är fri programvara. Det finns nu en mängd olika distributioner av GNU/Linux som publiceras av olika företag och organisationer. Dessa skiljer sig åt mer eller mindre mycket beroende på vilka val distributörerna har gjort angående vilka program som ska vara med och inte vara med. Några av de populäraste distributionerna är Debian GNU/Linux, Ubuntu, Red Hat Enterprise Linux, Fedora, Centos, opensuse och Gentoo. Dessutom finns det fria Unix-liknande system som baserar sig på BSD. På Berkeley fortsatte man nämligen att utveckla koden, och så småningom hade man bit för bit ersatt så många delar med nyskriven kod så att det inte fanns mycket kvar av ursprunglig kod från Bell Labs. Då gjorde man en ansträngning att ersätta även de kvarvarande delarna, så i början av 90-talet kunde man släppa ett nästan komplett operativsystem som var fritt. Fria system som bygger på den koden är FreeBSD, OpenBSD och NetBSD. De vanligaste kommersiella Unix-versionerna är idag AIX, HP-UX, MacOS X och Solaris. Apple har sedan MacOS X (version 10) byggt på ett Unixliknande system från BSD-familjen. Alla dessa system liknar varandra i stora drag i grunden, och man talar om Unix-liknande system även om system som inte verkligen är Unix, 3 utan kanske bara beter sig som Unix, dvs. är Unixkompatibla. De olika Unix-liknande systemen skiljer sig åt på en mängd små sätt. Det har gjorts flera försök att få dem att närma sig varandra för att underlätta flyttandet av program från ett system till ett annat, och bland annat genom standarderna POSIX och Single Unix Specification (och genom att en del kommersiella system slagits ut på marknaden) är dagens Unix-system mycket mer lika varandra än hur det var för ett par decennier sedan Gratis och fri De som talar om free software, fri programvara, menar inte free i betydelsen gratis, utan fri, och mer specifikt talar man om fyra friheter för programmens användare: Friheten att köra programmet, oavsett syfte Friheten att studera hur programmet fungerar, och anpassa det till ens egna behov Friheten att sprida programmet till andra Friheten att förbättra programmet och sprida även förbättringarna till andra Det finns många program som är gratis, men som inte är fria enligt detta. 4 Det kan vara till exempel program som man får använda gratis men bara för vissa ändamål (t. ex. bara för undervisning och/eller forskning), eller program som bara sprids i kompilerad form så att andra inte kan studera det eller ändra det. Ofta är det bara indirekt som man har nytta av dessa friheter. Även om man själv inte har kunskaper nog för att själv ändra i programmet så kan man ha indirekt nytta av att andra har rätt att sprida sprida dessa ändringar, istället för att en part har monopol på det. Och även om man själv inte ska använda ett program för kommersiella ändamål så är det t. ex. en fördel om man använder ett distrubition 3 Dvs. som är licensierade att använda varumärket Unix, som ägs av The Open Group. 4»Freeware«används ibland som namn på gratisprogram, så det är skillnad på det och»free Software«. 116

5 11.6. Upphovsrätt och licenser från ett företag som Red Hat ifall de hade rätt att skicka med programmet från början istället för att man ska behöva installera det själv, osv GNU GPL och»copyleft«skrivandet av operativsystemet GNU påbörjades på 1980-talet av Richard Stallman av ideologiska skäl. Han och de som förenade sig med honom ville att alla program skulle vara fria och såg ett fritt operativsystem som det naturliga första steget till detta. Man ville inte använda en lika tillåtande licens som t. ex. BSD gjorde. Skälet var att det ofta gjordes modifierade versioner av sådan kod som spreds som icke-fria program eller stoppades in i icke-fria program. Så var det i de olika kommersiella Unixversioner som uppstått vid denna tid som ofta hade delvis utgått från BSD-kod men lagt till sina egna förbättringar till den. Likadant var det med fönstersystemet X från MIT som spreds som fri programvara med en liknande licens. Många av de olika Unix-versionerna hade lagt till sina egna förbättringar av X, men dessa förbättringar kom bara just det företagets kunder till godo och kunde inte tas över av de andra företagen också. Den som använde en arbetsstation med Unix på 80-talet hade oftast inte möjlighet att läsa källkoden till program som de körde, även när den koden ursprungligen skrivits som fri programvara. För att de program som skrevs för GNU skulle fortsätta att vara fria för alla som använde dessa program skrev man en ny licens, GNU GPL (General Public License), där en av de viktigaste nyheterna var något som man kallade för copyleft. Det innebär att man inte tillåter att någon sprider modifierade versioner av programmet om inte dessa ändringar också sprids med samma villkor. Den som delar med sig av program enligt GPL till en grupp människor försäkrar sig alltså inte bara att programmet är fritt för den gruppen, utan även för dem som den gruppen i sin tur sprider vidare programmet till. Ibland använder man ett omvänt copyright-tecken (figur 11.2) för detta. Med tiden har det skapats fler licenser för fri programvara med lite olika egenskaper, men GPL är den klart vanligaste inte bara för sådant som skrivits direkt för GNU, utan även för t. ex. kärnan Linux och webbläsaren Firefox. Istället för att formulera dessa villkor själv brukar man i allmänhet använda någon av de licenser som redan har formulerats. Ett skäl är att det underlättar mycket för den som vill använda programmet om en välkänd licens som man redan känner till har använts. Ett annat är att det underlättar återanvändning av delar av programmet tillsammans med delar av andra program som använder samma licens. Licenser för icke-fria program är i allmänhet utformade som avtal eller överenskommelser mellan två parter. För att få komma åt programmet så förbinder man sig till att uppfylla vissa villkor. En licens som GNU GPL fungerar inte så, utan är helt enkelriktad. Det finns ingenting som man behöver gå med på för att använda ett GPL:at program. Allt licensen gör är att ge andra rätt att göra vissa saker som annars inte hade varit tillåtet på grund av upphovsrätten. Figur 11.2: Copyleft-tecknet har bildats genom att spegelvända copyright-tecknet Öppen källkod = Open source Medan rörelsen för fri programvara har ett ideologiskt ursprung och gärna talar om»frihet«betonas i andra sammanhang istället tekniska frågor, som att en ökad tillgänglighet av källkoden till program kan leda till förbättrade program genom att fler har möjlighet att hitta fel eller bidra med fixar. I sådana sammanhang talar man oftast om öppen källkod (open source) istället, och ser det som ett medel till att nå bättre resultat snarare än som ett mål i sig, även om vilka program som är fri programvara och vilka som är öppen källkod i praktiken oftast räknas likadant. 117

6 11. PROGRAM Figur 11.3: Byggblock i Creative Commons-licenser Annat än program Programförfattares fria spridande av sina program har varit en inspiration även för fritt spridande av andra upphovsrättsligt skyddade verk, som texter, bilder och musik. Ett exempel är ett stort samarbetsprojekt som encyklopedin Wikipedia. Organisationen Creative Commons har gjort en mängd olika licenser som är till för att upphovsrättsinnehavare ska kunna ge en del av sina rättigheter till allmänheten utan att släppa all kontroll. Dessa används rätt ofta vid spridande av texter, musik, bilder osv. och en del av dessa licenser är»fria«i den betydelse som används inom fri programvara. En del har även en copyleft-klausul, som där kallas för Sharealike. I figur 11.3 ses ikoner som ofta används vid beskrivning av de olika CC-licenserna. Creative Commons. BY = Attribution: man måste ange upphovsmakare. NC = Noncommercial: bara icke-kommersiell spridning är tillåten. ND = No Derivate Works: man får inte sprida härledda verk, bara exakta kopior SA = share alike: man får bara sprida det med samma villkor. En CC-licens använder någon kombination av dessa element, t. ex. Attribution + NoDerivates = by-nd = för något som andra får sprida vidare i oförändrat skick, om de anger ursprung, oavsett om det görs kommersiellt eller inte. 118

7 Laboration 11: Program Redovisning Checka in svar på frågorna i en fil ids11.txt i den versionskontrollerade katalog som heter som ditt användarnamn och som du har sedan tidigare. Gör en incheckning redan första dan du hållit på med detta, och en ny efter nästa gång du arbetat med det, osv. Versionskontroll igen Gå tillbaks till katalogen alla som du skapat tidigare som kontrolleras av Subversion. Tidigare har du sett hur du kan ändra i existerande filer och lägga till nya filer. Du använde även svn update för att uppdatera din arbetskatalog. Det finns en mängd olika Subversionkommandon som man ger på det sättet som argument till kommandot svn. Prova kommandot svn status. Det ger en översikt över hur din arbetskatalog skiljer sig från vad som finns i repositoriet. Kommandot listar de filer som skiljer sig med ett tecken först på raden som visar vad som gäller för just den filen. Du borde bland annat ha med rader som? sagobok.aux? sagobok.pdf och några till eftersom LaTeX skapade de filerna när du TeXade sagobok.tex, men Subversion inte vet något om dessa filer. Det är helt i sin ordning. Dessa filer bör inte checkas in, eftersom de skapas automatiskt från andra. Ett M står för modified, så om du har en rad som M sagobok.tex betyder det att du har gjort ändringar i den filen som du inte har checkat in. (Gör det i så fall!) A Ett A står för added, så om du haft en rad som groda.png skulle det betytt att du har registrerat den filen i Subversion, men sen inte checkat in den ännu. Uppgift 11.1 Ta bort filen sagobok.tex och ge svn status igen. Att en fil som borde finnas saknas i din arbetskatalog vill Subversion verkligen uppmärksamma dig på. Vad använder den för tecken för att markera sådana filer? Eftersom filen var versionskontrollerad kan du hämta tillbaka den från repositoriet igen. Gör svn update så får du den senaste versionen. Per har varit inne och ändrat lite i den. Ändra du också, genom att ändra rubriken för din saga från ditt användarnamn till nåt som har med innehållet att göra och checka sedan in din ändring. Skapa kataloger Nu kan du ändra i filer och skapa nya filer med svn. En sak som återstår är att lägga till nya kataloger. När du lade till en ny fil så skedde det i två steg. Det är likadant med kataloger, men denna gång får du inte hjälp av Emacs utan får ge svn-kommandon själv. Gå till den svn-katalog som heter som ditt användarnamn och skapa en underkatalog saga där, t. ex. med skalkommandot mkdir saga. Sen talar du om för Subversion att den ska hålla koll på denna katalog med svn add saga. Prova härnäst svn status i den katalogen. Uppgift 11.2 Vad får du för output från detta nu? De ändringar som anges av svn status kan checkas in med 119

8 LABORATION 11: PROGRAM $ svn commit -m "ett loggmeddelande" (Man måste ha ett loggmeddelande. Om man verkligen vill slippa kan man ge ett tomt sådant som "".) Gör så! Kontrollera efteråt att den incheckade katalogen inte längre nämns i outputten från svn status. Nu är den nya katalogen redo och du kan skapa nya filer i den på samma sätt som du gjorde förra veckan. Lägg din gamla klassiska saga.txt i den katalogen och checka in den från Emacs! Att kompilera Gör svn update i svn-katalogen som heter som ditt användarnamn. Det visar sig att en ny fil dyker upp trappa.c. Det är ett litet program i programspråket C. Kompilera programmet med cc trappa.c. (cc är C-kompilatorn.) Det skapas då en ny fil med det körbara programmet. Uppgift 11.3 Vad heter den fil som då skapas? Kör detta program med /local/texts/ jabberwocky som input. (Programmet accepterar inga argument, så du får lov att använda omdirigering.) Uppgift 11.4 Hur skrev du kommandot för att göra detta och hur löd resultatet? Normalt skulle man vilja att detta program vars källkod ligger i trappa.c skulle heta trappa istället. Det finns väljare till cc för att göra så istället, men tillverka istället en sådan fil trappa med hjälp av kommandot make. Kör alltså make trappa. Det skriver ut vilket kommando det i sin tur utför. Uppgift 11.5 Vilken väljare till cc använde make för att tala om vad det kompilerade programmet skulle heta? Uppgift 11.6 Om du gör make trappa igen vad får du du för meddelande från make? Såg du vad programmet gjorde med textfilen? Antagligen kan du inte C, men öppna ändå källkoden med Emacs och se om du kan gissa en del av hur programmet fungerar. Indent betyder indrag. Uppgift 11.7 Vissa delar av programmet är kommentarer de har ingen effekt på vad programmet gör, utan finns där för att underlätta läsningen och förståelsen av programmet. Vad skriver man tydligen före respektive efter kommentarer i C? Ändra i trappa.c så att den gör indrag med mellanrum istället för med understreck. Skriv make trappa för att kompilera om programmet och provkör det för att se att det stämmer, och checka sedan in den ändring du har gjort, med ett loggmeddelande som talar om att det är detta du ändrat. NR-grep Du har fått nys om ett program NR-grep som är ett grep-liknande program, men som bland annat skiljer sig genom en väljare -k med vilken man kan hitta ungefärliga träffar, som kan skilja sig lite från det man letar efter. I exemplet nedan söker jag efter felstavningen»aprksimativ«i en ordlista. Först tillåter jag två skillnader, men hittar ändå inget. När jag tillåter tre skilnader hittar jag ordet. Om jag tillåter hela fyra skillnader finns det flera möjligheter. $ ngrep -k2 '^aprksimativ$' dsso-list.txt $ ngrep -k3 '^aprksimativ$' dsso-list.txt approximativ $ ngrep -k4 '^aprksimativ$' dsso-list.txt approximativ approximativa approximativt predikativ presumtiv primitiv Sök upp detta program på nätet och hämta källkoden (till den senaste versionen). Flytta den till din kurskatalog och packa upp den där. 120

9 DSSO Uppgift 11.8 Vad heter filen du hämtade? Uppgift 11.9 Vad gav du för kommando för att packa upp den? I katalogen du får då hittar du information om hur programmet kan installeras. Gå till den nyskapade underkatalogen och gör så. (Det kommer upp en drös varningar när programmet kompileras, men det är inget du behöver bry dig om. Ifall du vore programmets författare borde du bry dig om dem.) Gå med cd.. upp ett snäpp till kurskatalogen och ge där ett kommando som plockar ut alla ord i dsso-list.txt som ligger högst ett steg ifrån»hund«. Använd en relativ sökväg till programmet! (Du kommer inte att kunna köra det bara genom att skriva»ngrep«som jag gjorde i exemplet ovan.) Uppgift resultat? Hur löd ditt kommando och dess Uppgift Om du istället står i katalogen där ngrep ligger, hur kan du då skriva för att göra samma sak? När man kör nrgrep -H säger den att det är free software och att man ska se»the GNU General Public License for details«, men här finns motstridig information, för det följer med en fil med programmet som innehåller upphovsrättsinformation som inte är GNU GPL utan en egen text. Uppgift Vad heter den filen? Uppgift Enligt vad som står om rättigheterna där, är detta fri programvara enligt vad som står i avsnitt ? Vilka av de fyra friheterna som listas där har man som användare av detta program? Skalskript Öppna en ny fil dosaga.sh i katalogen saga som du skapade tidigare i denna labb och skriv där in kommandon som utför alla dessa uppgifter (varav du redan löst de flesta tidigare): Skapa saga-i.txt som innehåller sagan på i- sprikit. Skapa saga-stor.txt som innehåller SAGAN MED ENBART VERSALER. Skapa saga-robber.txt som innehåller sagan på rövarspråket. (Bryt om resultatet så att det inte blir väldigt långa rader bara för att orden har blivit längre.) Skapa saga-ord.txt som innehåller en lista över alla ordformer i sagan som förekommer minst två gånger, med frekvenser, i frekvensordning, med det vanligaste ordet först. Genom att du skriver bash dosaga.sh ska nu allt detta utföras. Checka in denna fil dosaga.sh! (Men inte de filer som den skapar.) DSSO I tidigare uppgifter har ni använt Den stora svenska ordlistan, men inte i den form som den distribueras. Gå till på webben och hämta den senaste versionen av denna. Det är förmodligen dsso-1.44.txt, för det är det när jag skriver detta i alla fall. Det finns även versioner av ordlistan som är anpassade för att användas av vissa särskilda program, men hämta själva textfilen bara. Uppgift Vilken licens sprids den ordlistan med och vilken teckenkodning använder den filen? Filen du har hämtat innehåller ordlistans information på ett särskilt textformat. Du kan se efter själv hur innehållet i filen är upplagt, eller läsa den beskrivning som också finns på webbsidorna. En sak att märka är att det bara är rader med < och > som innehåller ordformer. Lägg filen i din svn-arbetskatalog som heter som ditt användarnamn och skapa en fil dsso.sh i samma katalog. Checka in den, fast den är tom, så att jag ser att du kommit igång med denna uppgift. Här ska du skriva ett skalskript så att om du ger kommandot bash dsso.sh skapas en fil ordformer.txt som innehåller en UTF8-fil med en ordform per rad. Ta inte med flerordsuttryck från filen som»au pair«och»science fiction«. Använd gärna flera skalkommandon i rad och lagra mellanresultat i filer som du tar bort i slutet av skalskriptet. Det första skulle t. ex. kunna vara ett kommando som skapar en fil dsso-u8.txt som är likadan som originalet, men omvandlad till UTF8. Senare i skalskriptet skulle du i så fall göra rm dsso-u8.txt för att rensa upp efter dig. 121

10 LABORATION 11: PROGRAM Repetition I data/en/4.0.regex som följde med Link Grammar finns det en del reguljära uttryck som matchar vissa saker som systemet kan hantera den vägen, som t. ex. ett komplicerat uttryck för att känna igen tal skrivna med romerska siffror. Ett av uttrycken där kallas»day-ordinals«och känner igen engelska ordningstal med siffror från»1st«till»31st«. (Inte högre än så, eftersom månader inte har fler dagar.) gånger? Det slipper du också, för med ett numeriskt argument kan man utföra ett makro flera gånger. Ge ett tillräckligt stort argument bara! Checka in dsso-trams.txt när den är klar. Uppgift Uppgift Hur lyder det? I vilken revidering lades detta till? Uppgift Hur skulle du kunna korta ner det uttrycket en aning, utan att det ändrar betydelse? Och så en fånig uppgift att lösa med Emacsmakron. Kopiera dsso-list.txt till dsso-trams. txt i din svn-katalog som heter som ditt användarnamn. Nu ska du i Emacs ändra den så att alla ord som innehåller bindestreck ska sättas inom parentes och få sina sista två tecken omkastade. Det finns ett kommando för att byta plats på två tecken efter varann. Det heter något med»transpose«och du kan hitta det med Emacs hjälpkommmandon. Så ditt makro ska söka framåt efter ett bindestreck (med C-s) och sedan göra de där ändringarna. Du kan också ha användning av C-a och C-e (eller Home och End) för att gå till början respektive slutet av raden. Resultatet ska alltså innehålla bland annat kemisk kemiska (kemisk-mekaniks) (kemisk-mekanisak) (kemisk-mekanistk) kemiskt (kemisk-tekniks) (kemisk-teknisak) (kemisk-teknistk) kemist kemisten kemistens kemister När du utför ditt makro gång på gång och ser att det funkar bra så önskar du kanske att du inte behöver hamra på utför-makro-tangenten hundratals 122

Kapitel 11. Program. 11.3 Att köra program. 11.1 Skript. 11.2 Interpreterande och kompilerande programspråk. 11.4 Att kompilera program

Kapitel 11. Program. 11.3 Att köra program. 11.1 Skript. 11.2 Interpreterande och kompilerande programspråk. 11.4 Att kompilera program Kapitel 11 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra. 11.1 Skript På s. 35 fick ni skapa skalskript textfiler med flera skalkommandon efter varann

Läs mer

Kapitel 11. Program. 11.1 Skript. 11.3 Att köra program. 11.2 Interpreterande och kompilerande programspråk

Kapitel 11. Program. 11.1 Skript. 11.3 Att köra program. 11.2 Interpreterande och kompilerande programspråk Kapitel 11 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra. 11.1 Skript Om man lägger flera skalkommandon efter varann i en fil blir det ju en samling instruktioner

Läs mer

Avslutning. Kapitel Komprimering av filer

Avslutning. Kapitel Komprimering av filer Kapitel 12 Avslutning I detta sista kapitel tittar vi på hur man kan installera program själv. I samband med det finns det anledning att titta på komprimering av filer och på filarkiv (som kan vara användbart

Läs mer

Program. Kapitel make Program Interpreterande och kompilerande program

Program. Kapitel make Program Interpreterande och kompilerande program Kapitel 11 Program Detta kapitel är som synes mycket kort och nämner inte allt från föreläsningen. 11.1 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra.

Läs mer

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make Kapitel 12 Mer om program 12.1 Att rapportera buggar och problem När man rapporterar buggar eller andra problem i program så är det några saker att tänka på för att ens rapport ska vara användbar för den

Läs mer

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara Rejås 1(27) Open Source - Eller som vi säger, Fri programvara Copyright 2006 Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något

Läs mer

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara Open Source - Eller som vi säger, Fri programvara Copyright 2006, 2007 Marcus Rejås Rejås Datakonsult, http://www.rejas.se Jag ger härmed rätten till alla att nyttja denna presentation

Läs mer

Licenser - Jo, tack, men så få som möjligt

Licenser - Jo, tack, men så få som möjligt Rejås 1(22) Licenser - Jo, tack, men så få som möjligt Copyright 2006 Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något sätt

Läs mer

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix Datorer och datoranvändning Föreläsningar 2014/15 Per Holm Per.Holm@cs.lth.se Unix 2 (lab 1) Lågnivåprogrammering 23 (lab 2) Datorns hårdvara 45 L A TEX 69 (lab 3) Internet 98 (lab 4) Operativsystem 117

Läs mer

http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande

http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande Ebba Ossiannilsson, Lunds universitet Alma Taawo Fristående konsult Användning av fria

Läs mer

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

2005-06-02 1 Open Source-licenser

2005-06-02 1 Open Source-licenser 2005-06-02 1 Open Source-licenser Open Source-licenser NEA Nätverket för Elektroniska Affärer Advokat Sofia Geilert 2005-06-02 2 Open Source-licenser Open Source-licenser Antal olika licenser för open

Läs mer

Denna presentation är inte klar, kommentarer mottages tacksamt! CyberRymden

Denna presentation är inte klar, kommentarer mottages tacksamt! CyberRymden Öppen/Fri mjukvara, 11 december 2002 1(13) Öppen/Fri mjukvara CyberRymden 2002-09-10 Marcus Rejås $Id: slides.tex,v 1.10 2002/12/11 20:15:40 rejas Exp $ http://www.rejas.net Made with

Läs mer

Open Source-licenser

Open Source-licenser 2005-12-02 1 Open Source-licenser Open Source NEA Nätverket för Elektroniska Affärer Advokat Sofia Geilert 2005-12-02 2 Open Source-licenser Vad är Open Source Software (OSS)? Öppen källkod Programvara

Läs mer

Öppen/Fri programvara

Öppen/Fri programvara Öppen/Fri programvara, 19 januari 2003 1(13) Öppen/Fri programvara DENNA PRESENTATION ÄR INTE KLAR, KOMMENTARER MOTTAGES TACKSAMT. CyberRymden 2002-09-10 Marcus Rejås $Id: slides.tex,v

Läs mer

Open Source - Program och hur man väljer

Open Source - Program och hur man väljer Open Source - Program och hur man väljer Copyright 2007, 2008 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga

Läs mer

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås <marcus@rejas.se>

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås <marcus@rejas.se> Fri programvara Mycket mer än gratis Copyright 2005, 2006 Marcus Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet

Läs mer

Datorsystem och programmering

Datorsystem och programmering Datorsystem och programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2010-08-23 Målsättning Kursens syfte är dels att studenterna ska skaffa sig erfarenheter

Läs mer

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29)

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29) Fri programvara Mycket mer än bara gratis Copyright 2005,2006 Marcus Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet

Läs mer

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap Introduktion till Linux TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap 3 Vem riktar sig kursen till? Hjälp! Jag fattar noll! Rädda mig! Ska man trycka

Läs mer

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008.

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008. 1 Introduktion UNIX Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008. Det övergripande syftet med dessa laborationer är

Läs mer

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap Introduktion till Linux TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap 3 Vem riktar sig kursen till? Hjälp! Jag fattar noll! Rädda mig! Ska man trycka

Läs mer

Övning 7. 1. Installation av Gentoo och/eller Arch Linux

Övning 7. 1. Installation av Gentoo och/eller Arch Linux Övning 7 1. Installation av Gentoo och/eller Arch Linux Målet med denna övning är att installera operativsystemet Gentoo Linux och/eller Arch Linux. Jag rekommenderar mycket starkt att faktiskt försöka

Läs mer

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix Datorer och datoranvändning Föreläsningar 2018/19 Per Holm Roger Henriksson roger.henriksson@cs.lth.se Förberedelse inför laboration 1. Operativsystem, Unix historik Filer och kataloger Kommandon Filskydd

Läs mer

Introduktion till Unix och Linux

Introduktion till Unix och Linux Introduktion till Unix och Linux TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap 2014-08-22 2 3 Vem riktar sig kursen till? Hjälp! Jag fattar noll! Rädda

Läs mer

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Lab 7, 48 steg till ett bättre liv i Unix-labbet Lab 7, 48 steg till ett bättre liv i Unix-labbet Urban Liljedahl 13 december 2002 Instruktioner Mål Krav Utveckla förmågan att söka kunskap med hjälp litteratur och andra källor. Utveckla förmågan att

Läs mer

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap Introduktion till Linux TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap 3 Vem riktar sig kursen till? Hjälp! Jag fattar noll! Rädda mig!

Läs mer

Programvaror - Jo, tack, det vill vi ha...

Programvaror - Jo, tack, det vill vi ha... Rejås 1(20) Programvaror - Jo, tack, det vill vi ha... Copyright 2006 Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något sätt

Läs mer

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås Introduktion till CVS,17 november 2002 1(27) CVS-Introduktion CyberRymden 2001-10-03 Marcus Rejås $Id: slides.tex,v 1.2 2002/11/17 18:16:40 rejas Exp $ Introduktion till CVS,17 november

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning Numerisk analys och datalogi KTH 100 44 Stockholm Ann Bengtsson, Kerstin Frenckner 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1 UNIX Mål Syftet med denna laboration är att ni ska

Läs mer

Open Source - Utmaningar och fördelar

Open Source - Utmaningar och fördelar Open Source - Utmaningar och fördelar Johan Hübner Emil Dicksved 16 mars 2011 Agenda Vad är open source? Historik och utveckling över tid Krav på open source-licenser Översiktlig genomgång av några vanliga

Läs mer

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande. Unix design Vad är Unix? Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande. Designen bakom Unix har influerat nästan alla exististerande operativsystem.

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

1 Vad är Versionshantering? 2 Git. 2.1 GitHub 1 Vad är Versionshantering? Versionshantering (eller Version Control) är ett samlingsnamn för program som ger en användare möjlighet att komma åt tidigare versioner av dokument och spåra ändringar som

Läs mer

Operativsystem och användargränssnitt

Operativsystem och användargränssnitt Operativsystem och användargränssnitt Som du fick läsa tidigare behöver datorn förutom hårdvara också ett program för att hantera hårdvaran, dvs. ett operativsystem. Denna sida behandlar bland annat följande

Läs mer

Introduktion till datateknik för språkvetare ht 2007

Introduktion till datateknik för språkvetare ht 2007 Introduktion till datateknik för språkvetare ht 2007 Per Starbäck 9 oktober 2007 Kapitel 1 Datorer, operativsystem och filer En dator är, enligt Nationalencyklopedin, en automatisk maskin för beräkning

Läs mer

Kapitel 11. Program. 11.1 Skript. 11.3 Att köra program. 11.2 Interpreterande och kompilerande programspråk. 11.4 Att kompilera program

Kapitel 11. Program. 11.1 Skript. 11.3 Att köra program. 11.2 Interpreterande och kompilerande programspråk. 11.4 Att kompilera program Kapitel 11 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra. 11.1 Skript På s. 32 fick du skapa skalskript textfiler med flera skalkommandon efter varann

Läs mer

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem UNIX Introduktion UNIX Inge Frick inge@nada.kth.se De datorer ni kommer att använda här är huvudsakligen SUN-maskiner som kör Solaris. Solaris är ett Unix operativsystem. Unix intro 2005 / Copyright Inge

Läs mer

TDP005 Projekt: Objektorienterat system

TDP005 Projekt: Objektorienterat system . TDP005 Projekt: Objektorienterat system Laboration i Make och CMake Författare Filip Strömbäck Höstterminen 2016 Version 1.0 2016-10-04 Introduktion I denna lab kommer vi titta närmare på två verktyg

Läs mer

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna Subversion Laboration Höstterminen 2008 Ronny Kuylenstierna @ida.liu.se svn-labb 2 [...] Subversion can be used to manage changes to any sort of information images, music, databases, documentation, and

Läs mer

Handbok Simond. Peter H. Grasch

Handbok Simond. Peter H. Grasch Peter H. Grasch 2 Innehåll 1 Inledning 6 2 Använda Simond 7 2.1 Användarinställning.................................... 7 2.2 Nätverksinställning..................................... 9 2.3 Inställning

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

Svenska Föreningen för Upphovsrätt 5 november 2002. Mikael Pawlo Något om öppen kod, öppen text och öppen musik

Svenska Föreningen för Upphovsrätt 5 november 2002. Mikael Pawlo Något om öppen kod, öppen text och öppen musik Svenska Föreningen för Upphovsrätt 5 november 2002 Mikael Pawlo Något om öppen kod, öppen text och öppen musik 2 minuter upphovsrätt Traditionell licensiering Fri programvara Öppen källkod Öppet innehåll

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Allmänt om programvaror och filer i Windows.

Allmänt om programvaror och filer i Windows. Allmänt om programvaror och filer i Windows. Vart sparade du dokumentet? I Word. Jag har fått detta svar mer än en gång när jag försökt hjälpa någon att hitta ett dokument som de tappat bort i sin dator.

Läs mer

Kort-kort om utdelade användarkonton och datormiljön på NADA

Kort-kort om utdelade användarkonton och datormiljön på NADA Kort-kort om utdelade användarkonton och datormiljön på NADA UNIX-konto, användaridentitet Namn Du har fått ett konto med ett användarnamn bestående av prefixet ip99_ och ytterligare tre bokstäver. Dessa

Läs mer

Programkonstruktion med datorintroduktion, 2D1339

Programkonstruktion med datorintroduktion, 2D1339 Programkonstruktion med datorintroduktion, 2D1339 Välkomna Kursen Datorintroduktionsdelen Unix Historik och bakgrund Logga in och ut Regler för datoranvändning Lösenord, byte Filer och kataloger Emacs

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Textbearbetning i skalet och man-sidor

Textbearbetning i skalet och man-sidor Kapitel 5 Textbearbetning i skalet och man-sidor Vi har redan använt skalkommandon för att göra saker textfiler. Här kommer gomgång av sådana kommandon som vi redan använt, några nya varianter, samt ett

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

kommando -fl argument

kommando -fl argument Grundläggande kommandostruktur kommando -fl argument Kommandot kommando är ett litet linuxprogram som gör något. Flaggorna fl modifierar kommandot Argumentet argument kan vara inget, ett eller flera (beroende

Läs mer

Handbok Svarta lådan. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll

Handbok Svarta lådan. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategier och tips 7 3.1 Spelregler..........................................

Läs mer

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon). Laboration 0 Laborationen är till för dig som inte är familjär med att navigera i filträd på en dator. Om du är van vid detta (vilket är det vanliga nu för tiden) så kan du bara snabbt titta igenom laborationen.

Läs mer

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll Brad Hards Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Protokollet Remote Frame Buffer 6 3 Använda Dela Skrivbord 7 3.1 Hantera inbjudningar i Dela Skrivbord.......................... 9 3.2

Läs mer

Introduktion till datormiljön och Python

Introduktion till datormiljön och Python Introduktion till datormiljön och Python Nyckelord: katalog, katalogträd, rot, fil, källkod, program, exekvering, tilldelning, inmatning, utmatning. Mål: Att du efter laborationen ska klara dig på egen

Läs mer

GitHub for Windows och GitShell

GitHub for Windows och GitShell GitHub for Windows och GitShell En introduktion till programmen och de första grunderna i git. Det finns en tidigare introduktion. Den visar hur man skapar konto på git och använder GitHub for Windows

Läs mer

Handbok KAppTemplate. Anne-Marie Mahfouf Översättare: Stefan Asserhäll

Handbok KAppTemplate. Anne-Marie Mahfouf Översättare: Stefan Asserhäll Anne-Marie Mahfouf Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Att använda KAppTemplate 6 3 Vilken mall behöver du? 9 3.1 C++ mallen för ett grafiskt användargränssnitt i KDE 4................

Läs mer

Introduktion till git

Introduktion till git Introduktion till git Anders Engström 23 februari 2012 1 / 27 Översikt Introduktion I en värld utan versionshantering Typer av versionshantering Detta är git Komma igång med git Förberedelser Eget repository

Läs mer

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås <marcus@rejas.se>

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås <marcus@rejas.se> Fri programvara Mer än bara gratis Copyright 2006 Marcus Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något

Läs mer

Övningar för del I av kursen

Övningar för del I av kursen Övningar för del I av kursen Detta är den första samlingen av tre med övningar. Övningarna i den här samlingen numreras med 1.x där x går går från 1 till 8. Det är nödvändigt att genomföra de flesta övningar

Läs mer

Mer om skalet. Kapitel Omdirigering

Mer om skalet. Kapitel Omdirigering Kapitel 3 Mer om skalet I förra kapitlet gavs grunderna i hur man ger kommandon i skalet och kommandon för att hantera filer gicks särskilt igenom. I detta kapitel ges några till kommandon och begrepp,

Läs mer

TDP003 Projekt: Egna datormiljön

TDP003 Projekt: Egna datormiljön . TDP003 Projekt: Egna datormiljön Egen utvecklingsmiljö Kursmaterial till kursen TDP003 Höstterminen 2017 Version 2.2 2017-06-30 2017-06-30 Egen utvecklingsmiljö INNEHÅLL Innehåll 1 Revisionshistorik

Läs mer

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!) SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!) Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns

Läs mer

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002 CVS kurs laboration 1 Checka in, ut och uppdatera Marcus Rejås 17 november 2002 Innehåll 1 Inledning 1 2 Förberedelser (om du skall köra CVS på en remote server) 1 2.1 Installera CYGWIN......................................

Läs mer

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Versionshantering. Problem som uppstår i större (samt även mindre) projekt: Versionshantering Problem som uppstår i större (samt även mindre) projekt: Samtidiga ändringar. Kålle och Ada öppnar samma fil för redigering vid var sin dator. Om Kålle först sparar sina ändringar och

Läs mer

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015 DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015 Fyll i ditt namn och personnummer med bläck eller motsvarande. OBS: Om inte denna kvittenssida tas med vid redovisningen får

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll En allmän inledning Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Komponenter i Calligra.................................. 5 1.2 Översikt över funktioner i

Läs mer

Handbok Kfloppy diskettformaterare

Handbok Kfloppy diskettformaterare Thad McGinnis Nicolas Goutte Utvecklare: Bernd Johannes Wuebben Utvecklare (omkonstruktion av användargränssnitt): Chris Howells Utvecklare (tillägg av BSD-stöd): Adriaan de Groot Granskare: Lauri Watts

Läs mer

Creative Commons. en guide för lärare. En guide för lärare

Creative Commons. en guide för lärare. En guide för lärare Plastic globes at the Museum für Kommunikation, Berlin av Tup Wanders http://www.flickr.com/photos/tupwanders/79476476/ en guide för lärare Creative Commons En guide för lärare 1 Creative Commons Vad är

Läs mer

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Datateknik A, Syfte: Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Att läsa: Lektion 1 Antal uppgifter: 3 Inlämning: Sker via inlämningsuppgifter

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE. Version 2013.41 Revidering A December 2013

PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE. Version 2013.41 Revidering A December 2013 PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE 1 Version 2013.41 Revidering A December 2013 Legal Information Trimble Navigation Limited Engineering Construction Group 935 Stewart Drive Sunnyvale, California

Läs mer

Handbok SSCd. Peter H. Grasch

Handbok SSCd. Peter H. Grasch Peter H. Grasch 2 Innehåll 1 Inledning 6 2 Använda SSCd 7 2.1 Baskatalog.......................................... 7 2.2 Inställning.......................................... 7 2.3 Databas............................................

Läs mer

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Introduktion till användning av linux-servern sledge och några övningsuppgifter Uppsala universitet Institutionen för utbildning, kultur och medier Monica Langerth Zetterman och Richard Walls IT-stöd i undervisningen, HT10 Introduktion till användning av linux-servern sledge och några

Läs mer

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 17 januari 2013 Innehåll 1 Inledning och mål 3 2 Material och

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Sun Java W1100z och W2100z arbetsstationer: Versionsinformation

Sun Java W1100z och W2100z arbetsstationer: Versionsinformation Sun Java W1100z och W2100z arbetsstationer: Versionsinformation Sun Microsystems, Inc. www.sun.com Artikelnr 817-7995-10 Oktober 2004, Version B Skicka kommentarer om dokumentet till: http://www.sun.com/hwdocs/feedback

Läs mer

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server? Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server? Att välja operativsystem kan vara svårt. Det kan vara svårt att förstå vilka konsekvenser

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Versionshantering med Git. Henrik Henriksson 17 april 2018

Versionshantering med Git. Henrik Henriksson 17 april 2018 Versionshantering med Git Henrik Henriksson 17 april 2018 1 Versionshantering? rapport_v0.4.docx rapport_v0.5.pdf rapport-v1.0.cpp rapport_v1.0.docx raport_v0.9-final.docx komplettering-v2.0.docx färdig.7.pdf

Läs mer

Laboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter

Laboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter Laboration 10: LaTeX Redovisning Instruktionerna nedan Dessa labbinstruktioner är av den pratiga sorten. Du får ganska detaljerade instruktioner som du får följa steg för steg och där de fåtaliga frågorna

Läs mer

Kort om World Wide Web (webben)

Kort om World Wide Web (webben) KAPITEL 1 Grunder I det här kapitlet ska jag gå igenom allmänt om vad Internet är och vad som krävs för att skapa en hemsida. Plus lite annat smått och gott som är bra att känna till innan vi kör igång.

Läs mer

Kort-kort om utdelade användarkonton och datormiljön på NADA

Kort-kort om utdelade användarkonton och datormiljön på NADA Kort-kort om utdelade användarkonton och datormiljön på NADA UNIX-konto, användaridentitet Namn Du har fått ett konto med ett användarnamn bestående av prefixet ip98- och ytterligare tre bokstäver. Dessa

Läs mer

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

emopluppen Användning av Ant Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC) emopluppen Användning av "Ant" Version: 1.4 ( 2002/04/26 07:27:52 UTC) Niklas Backlund Sammanfattning Det här dokumentet handlar om programmet Ant, som är en byggmiljö för programutvecklingsprojekt. Dess

Läs mer

Policy för Linnéuniversitetets publicering av digitalt undervisningsmaterial

Policy för Linnéuniversitetets publicering av digitalt undervisningsmaterial Dnr. LNU 2014/82-1.1 Policydokument Policy för Linnéuniversitetets publicering av digitalt undervisningsmaterial Universitetsbiblioteket 2014-02-11 Policy för Linnéuniversitetets publicering av digitalt

Läs mer

Tips och tricks. Några bra tips. Lägg till sökvägar

Tips och tricks. Några bra tips. Lägg till sökvägar 17 Tips och tricks Det är aldrig så bra att det inte kan bli bättre och det finns alltid saker som har en viss benägenhet att gå fel I det här kapitlet kommer vi att ge dig några tips på hur du kan förbättra

Läs mer

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12 Översikt Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot 2 / 12 Texthantering Kommandona cat och less Vi har ett par textfiler i vår hemkatalog som heter liten_text.txt

Läs mer

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok. Ver Okt 2011/pls Windows7, GX-IEC Developer, USB-adapter I olika kurser i styrteknik på Högskolan Dalarna används ett styrsystem från Mitsubishi och programvaran GX-IEC Developer. Kurserna går på distans

Läs mer

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll

Handbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll Dirk Doerflinger Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Starta KFind......................................... 5 2 Hitta filer 6 2.1 Fliken Namn och plats...................................

Läs mer

IDA kursmaterial Informationsblad make. make

IDA kursmaterial Informationsblad make. make make make är ett verktyg som främst används för att underhålla, uppdatera och återskapa program och filer. Det är dock ett generellt verktyg som kan användas även i många andra sammanhang. En avancerad

Läs mer

Windows, vs Mac, vs Linux

Windows, vs Mac, vs Linux GNU/Linux Windows, vs Mac, vs Linux Windows, vs Mac, vs Linux Att komma igång med en ny dator.. Några Fördelar/Nackdelar med GNU/Linux Fördelar: Hög säkerhet (I princip inga virus, säker installation av

Läs mer

Instruktioner för att kunna programmera på skolans datorer

Instruktioner för att kunna programmera på skolans datorer Instruktioner för att kunna programmera på skolans datorer De här instruktionerna är viktiga att känna väl till inför tentamen samt inför laborationsredovisningar. Många av er kommer att använda bärbara

Läs mer

Handbok KsirK. Gael Kleag de Chalendar Nemanja Hirsl Översättare: Stefan Asserhäll

Handbok KsirK. Gael Kleag de Chalendar Nemanja Hirsl Översättare: Stefan Asserhäll Gael Kleag de Chalendar Nemanja Hirsl Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 6 2 Använda KsirK 7 2.1 Spela KsirK......................................... 7 2.1.1 Att starta ett spel..................................

Läs mer

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp Välkomna Introduktion till datoranvändning Välkomna till NADA (Numerisk Analys och DAtalogi) och kursen Datalogi, grundkurs 1, 15hp DA2001 (Föreläsning 1) Datalogi 1 Hösten 2010 1 / 27 Kursansvarig Välkomna

Läs mer

Lathund för webbpublicering av bilder

Lathund för webbpublicering av bilder Lathund för webbpublicering av bilder Innehåll Lathund för webbpublicering av bilder... 1 Vilka bilder får du publicera på webben?... 2 Bilder på Google... 3 Creative Commons bilder... 4 Bilder utan upphovsrätt

Läs mer

Handbok Ark. Matt Johnston Översättare: Stefan Asserhäll

Handbok Ark. Matt Johnston Översättare: Stefan Asserhäll Matt Johnston Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Att använda Ark 6 2.1 Öppna arkiv......................................... 6 2.2 Arbeta med filer.......................................

Läs mer

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser Innehåll Operativsystem Vad är operativsystem och hur fungerar de Vad är ett OS? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika

Läs mer