next up previous contents
Next: Halloverden! Up: C-programmering for musikere Previous: Contents

Innledning

Hvorfor lære å programmere? Fordi de fleste ferdige musikkprogrammer legger begrensninger på den kunstneriske prosessen. Selv om et ferdig system kan se åpent og generelt ut (som f.eks. Max), har programmereren alltid tenkt på en viss måte som nødvendigvis blir påtvunget brukeren. Man støter hele tiden på hindringer av forskjellig slag.

I dette kurset har vi valgt å benytte programmeringsspråket C. C (eller en utvidelse som heter C++) er det overlegent mest brukte språket i dag. C-programmer kjører gjerne raskt, og man har tilgang til store samlinger av ferdig kode for forskjellige deloppgaver.

C har også klare ulemper. C-kode kan se uoversiktlig ut, og det er lett å gjøre feil. Et C-program må også kompileres, dvs. oversettes til maskinkode, før det kjøres. Dette gir raske programmer, men det er slitsomt å måtte re-kompilere hele tiden mens man lager og tester et program.

Hvis man først har satt seg inn i C, er det lett å lære seg andre programmeringsspråk. Utfordringen er å lære seg å programmere; hvilket språk man bruker er egentlig av mindre betydning.

Å lære å programmere er imidlertid ingen rask og enkel sak. Du er nok ingen utlært programmerer etter dette kurset! En ting er å lære de grunnleggende bestanddelene i et språk (syntaksen), men så kommer det uendelige fagområdet som handler om algoritmer. Hvordan skal man lage et program som spiller sjakk, forutsier været eller etterlikner en fiolin? Slike problemer krever avansert kunnskap om datastrukturer, matematikk og fysikk.

Dessuten har vi alle de såkalte bibliotekene med kode som tar seg av spesielle ting som lyd, grafikk, nettverk osv. Man blir aldri ferdig med å lære seg hvordan slike ting skal brukes.

Vi må selvsagt begrense oss kraftig i et kurs som dette. Målet er at du skal lære å lage enkle men nyttige programmer som analyserer og produserer musikk og tildels bilder. Selv det forholdsvis lille vi lærer i dette kurset vil gi deg langt flere muligheter enn de fleste ferdige programmer kan tilby.

De fleste læretekster om programmering bruker eksempler fra "administrativ" databehandling - sjekking av personnummer og slikt. Dette blir vel litt på siden av hva de fleste er interesserte i, så vi har valgt å lage dette egne, lille kompendiet med mer kreativt orienterte eksempler.

Selve syntaksen i C er beskrevet meget kort, uklart og ufullstendig. I tillegg til denne teksten trenger du derfor en generell referanse til C. Det finnes mange, en klassisk bok er "The C Programming Language" av Kernighan og Ritchie.

Hvorfor ikke C++? Det er jo så moderne. C++ er en utvidelse av C, som støtter såkalt objektorientering. Dette er meget viktig når man skal lage store systemer, men vi har valgt å begrense oss til kjernen av C.

Vi bruker UNIX-arbeidsstasjoner i dette kurset. Slike maskiner er veldig behagelige å programmere. Anskaff gjerne en C-kompilator til din Mac eller PC, men vær forberedt på et mer tungvint programmeringsmiljø.


next up previous contents
Next: Halloverden! Up: C-programmering for musikere Previous: Contents

\yvind Hammer
Tue Oct 1 17:56:30 MDT 1996