~ubuntu-branches/ubuntu/oneiric/kde-l10n-sv/oneiric-proposed

« back to all changes in this revision

Viewing changes to docs/kdevelop/kdevelop/unixdev.docbook

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2008-01-06 08:12:06 UTC
  • Revision ID: james.westby@ubuntu.com-20080106081206-0fzxcmn6at9pb29c
Tags: upstream-4.0.0
Import upstream version 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<appendix id="unixdev">
 
2
 
 
3
<appendixinfo>
 
4
  <authorgroup>
 
5
    <author
 
6
><firstname
 
7
>Bernd</firstname
 
8
><surname
 
9
>Pol</surname
 
10
></author>
 
11
    <!-- ROLES_OF_TRANSLATORS -->
 
12
  </authorgroup>
 
13
</appendixinfo>
 
14
 
 
15
<title
 
16
>Utveckling på &UNIX;</title>
 
17
 
 
18
<indexterm zone="unixdev"
 
19
><primary
 
20
>utveckling</primary
 
21
></indexterm>
 
22
<indexterm zone="unixdev">
 
23
  <primary
 
24
>&UNIX;</primary>
 
25
  <secondary
 
26
>utveckling</secondary
 
27
></indexterm>
 
28
 
 
29
<sect1 id="history">
 
30
<title
 
31
>Några historiska anmärkningar</title>
 
32
 
 
33
<indexterm zone="history"
 
34
><primary
 
35
>historia</primary
 
36
></indexterm>
 
37
<indexterm zone="history"
 
38
><primary
 
39
>skriptspråk</primary
 
40
></indexterm>
 
41
<indexterm zone="history">
 
42
  <primary
 
43
>&UNIX;</primary>
 
44
  <secondary
 
45
>historia</secondary
 
46
></indexterm>
 
47
<indexterm zone="history">
 
48
  <primary
 
49
>&UNIX;</primary>
 
50
  <secondary
 
51
>rörledning</secondary
 
52
></indexterm>
 
53
<indexterm zone="history">
 
54
  <primary
 
55
>&UNIX;</primary>
 
56
  <secondary
 
57
>skal</secondary
 
58
></indexterm>
 
59
<indexterm zone="history">
 
60
  <primary
 
61
>skal</primary>
 
62
  <secondary
 
63
>&UNIX;</secondary
 
64
></indexterm>
 
65
 
 
66
<para
 
67
>Från början har &UNIX; upprätthållit två mycket olika utvecklingsmodeller. Den ena är sfären av programspråk för <emphasis
 
68
>system och tillämpningar</emphasis
 
69
>, där en källkod översätts till maskinkod med en <emphasis
 
70
>kompilator</emphasis
 
71
> eller <emphasis
 
72
>tolk</emphasis
 
73
>. Programspråket C är ett exempel på detta. Unix var den första operativsystemkärnan som skrevs i ett högnivåspråk istället för maskinnära assembler, som var vanligt innan dess. (I själva verket uppfanns till och med språket C för att skriva Unix-kärnan, och tillhörande program, på en DEC PDP-11 dator.) </para>
 
74
<para
 
75
>Den andra modellen är sfären med <emphasis
 
76
>skriptspråk</emphasis
 
77
>, som startade med uppfinningen av &UNIX;-skalet, som samtidigt var operativsystemets användargränssnitt, och ett programspråk på mycket hög nivå. Ett skalskript byggs upp av en mängd små verktyg som t.ex. <command
 
78
>grep</command
 
79
>, <command
 
80
>sed</command
 
81
> eller <command
 
82
>find</command
 
83
>. Varje sådant verktyg är konstruerat för en väl avgränsad uppgift. Tricket är att alla sådana verktyg kan kopplas ihop med varandra via en enkel överföringsmekanism, kallat <emphasis
 
84
>rörledning</emphasis
 
85
>, som skickar utmatningen från föregående verktyg till inmatningen för nästa. Det ger grunden till en mycket kraftfull och flexibel programmeringsmetod. </para>
 
86
<para
 
87
>Med tiden har båda sfärerna utvecklats. Medan C fortfarande i huvudsak används som ett systemprogramspråk, har C++, som en variant av C berikad med objektorienterade och generiska utökningar, funnit sin plats vid utveckling av komplexa program under 1990-talet. Det finns många andra programspråk, till och med äldre behåller sin plats. FORTRAN77 och Ada har t.ex. fortfarande sina fästen i numeriska tillämpningar. </para>
 
88
</sect1
 
89
> <!-- history -->
 
90
 
 
91
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
 
92
 
 
93
<sect1 id="unixdev-scripting-languages">
 
94
<title
 
95
>Moderna skriptspråk</title>
 
96
<para
 
97
>I skriptområdet har det skett ett skifte bort från skalet, som lider av flyttbarhetsproblem, till språk som samlar alla vanliga funktioner i standardbibliotek, medan de fortfarande kan ha gränssnitt mot omvärlden via rörledningar när det behövs.  </para>
 
98
<para
 
99
>Alla skriptspråk har gemensamt att de ofta är flyttbara mellan många &UNIX;-varianter, &Microsoft; &Windows;, &MacOS; eller till och med VMS. Dessutom har de alla implementeringar som kan distribueras fritt. </para>
 
100
 
 
101
<sect2 id="unixdev-SL-Perl">
 
102
<title
 
103
>&perl;</title>
 
104
 
 
105
<indexterm zone="unixdev-SL-Perl"
 
106
><primary
 
107
>Perl</primary
 
108
></indexterm>
 
109
<indexterm zone="unixdev-SL-Perl">
 
110
  <primary
 
111
>skriptspråk</primary>
 
112
  <secondary
 
113
>Perl</secondary
 
114
></indexterm>
 
115
 
 
116
<para
 
117
><ulink url="http://www.perl.com"
 
118
>&perl;</ulink
 
119
> har blivit populärt som textbehandlings- och systemadministrationsspråk. Från starten av webben användes CGI-skript skrivna i &perl; som ett utbrett sätt att skapa dynamiska webbsidor från databaser. Idag har den metoden ofta ersatts med insticksprogrammet <command
 
120
>mod_perl</command
 
121
> för webbservern &apache;. Bland &perl;s styrkor är dess inbyggda stöd för avancerade reguljära uttryck, och rika arkiv med fritt distribuerade moduler. </para>
 
122
<para
 
123
>För mer information se webbplatsen <ulink url="http://cpan.org"
 
124
>Comprehensive Perl Archive Network (<acronym
 
125
>CPAN</acronym
 
126
>)</ulink
 
127
>. </para>
 
128
</sect2
 
129
> <!-- unixdev-SL-Perl -->
 
130
 
 
131
<sect2 id="unixdev-SL-Python">
 
132
<title
 
133
>Python</title>
 
134
 
 
135
<indexterm zone="unixdev-SL-Python"
 
136
><primary
 
137
>Python</primary
 
138
></indexterm>
 
139
<indexterm zone="unixdev-SL-Python">
 
140
  <primary
 
141
>skriptspråk</primary>
 
142
  <secondary
 
143
>Python</secondary
 
144
></indexterm>
 
145
 
 
146
<para
 
147
><ulink url="http://www.python.org"
 
148
>&python;</ulink
 
149
> glänser med elegansen i sitt klassystem och enkelheten och flexibiliteten som yttre bibliotek kan förpackas, på så sätt att de förefaller vara standardklasser och -funktioner i &python;. I motsats till &perl;, har &python; ett klart och koncist inbäddningsgränssnitt, som gör det till bästa val för att möjliggöra skript för C och C++ program. </para>
 
150
</sect2
 
151
> <!-- unixdev-SL-Python -->
 
152
 
 
153
<sect2 id="unixdev-SL-PHP">
 
154
<title
 
155
>PHP</title>
 
156
 
 
157
<indexterm zone="unixdev-SL-PHP"
 
158
><primary
 
159
>PHP</primary
 
160
></indexterm>
 
161
<indexterm zone="unixdev-SL-PHP">
 
162
  <primary
 
163
>skriptspråk</primary>
 
164
  <secondary
 
165
>PHP</secondary
 
166
></indexterm>
 
167
 
 
168
<para
 
169
><ulink url="http://www.php.net"
 
170
>&php;</ulink
 
171
> uppfanns som ett språk för direkt inbäddning på HTML-sidor, och har av den orsaken huvudanvändningen att leverera dynamisk innehåll för webben. </para>
 
172
</sect2
 
173
> <!-- unixdev-SL-PHP -->
 
174
</sect1
 
175
> <!-- unixdev-scripting-languages -->
 
176
 
 
177
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
 
178
<sect1 id="unixdev-hl-script">
 
179
<title
 
180
>Högnivåskript</title>
 
181
 
 
182
<para
 
183
>Högnivåprogram i &UNIX; saknar ofta snabbheten och flexibiliteten hos de traditionella teckenbaserade skalskriptmekanismerna. Det är särskilt sant i de grafiska gränssnittens värld, som t.ex. &kde;. </para>
 
184
<para
 
185
>Försök har gjorts att tillhandahålla liknande mekanismer som fungerar på en högre programnivå, bland de mest nämnvärda är <link linkend="unixdev-corba"
 
186
>CORBA</link
 
187
>, och i &kde;-miljön, <link linkend="unixdev-dcop"
 
188
>&DCOP;</link
 
189
>. </para>
 
190
 
 
191
<sect2 id="unixdev-corba">
 
192
<title
 
193
>CORBA-protokollet</title>
 
194
 
 
195
<indexterm zone="unixdev-corba"
 
196
><primary
 
197
>CORBA</primary
 
198
></indexterm>
 
199
<indexterm zone="unixdev-corba">
 
200
  <primary
 
201
>skriptspråk</primary>
 
202
  <secondary
 
203
>CORBA</secondary
 
204
></indexterm>
 
205
<indexterm zone="unixdev-corba">
 
206
  <primary
 
207
>kommunikation</primary>
 
208
  <secondary
 
209
>CORBA</secondary
 
210
></indexterm>
 
211
 
 
212
<para
 
213
><ulink url="http://www.omg.org/gettingstarted/corbafaq.htm"
 
214
>CORBA</ulink
 
215
> (<emphasis
 
216
>Common Object Request Broker Architecture</emphasis
 
217
>) är ett försök att låta datorprogram arbeta tillsammans via nätverk. Det togs fram av den privata, leverantörsoberoende kommittén <ulink url="http://www.omg.org"
 
218
>OMG</ulink
 
219
> (Object Management Group). </para>
 
220
<para
 
221
>CORBA-baserade program använder IIOP-standardprotokollet för att kommunicera. Implementeringar baserade på IIOP är tillgängliga för ett stort antal operativsystem, programspråk och nätverk, och är därför mycket flyttbara. </para>
 
222
<para
 
223
>Den huvudsakliga nackdelen med CORBA är dess ganska långsamma hastighet. Även om det kan tolereras i nätverk, är det ett verkligt hinder för kommunikation mellan program i en miljö utan nätverk, såsom &kde; när det kör på en enda dator. </para>
 
224
 
 
225
</sect2
 
226
> <!-- unixdev-corba -->
 
227
 
 
228
<sect2 id="unixdev-dcop">
 
229
<title
 
230
>&DCOP;-gränssnittet</title>
 
231
 
 
232
<indexterm zone="unixdev-dcop"
 
233
><primary
 
234
>DCOP</primary
 
235
></indexterm>
 
236
<indexterm zone="unixdev-dcop">
 
237
  <primary
 
238
>skriptspråk</primary>
 
239
  <secondary
 
240
>DCOP</secondary
 
241
></indexterm>
 
242
<indexterm zone="unixdev-dcop">
 
243
  <primary
 
244
>kommunikation</primary>
 
245
  <secondary
 
246
>DCOP</secondary
 
247
></indexterm>
 
248
 
 
249
<para
 
250
>En annan evolution av &UNIX;-liknande skript är <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html"
 
251
><emphasis
 
252
>DCOP</emphasis
 
253
></ulink
 
254
>-protokollet, som uppfanns för kommunikation mellan &kde;-program för att bemästra CORBA:s begränsningar. </para>
 
255
<para
 
256
>&DCOP; betyder <emphasis
 
257
>Desktop COmmunikation Protocol</emphasis
 
258
> (protokollet för skrivbordskommunikation), och är implementerat som en enkel IPC/RPC-mekanism byggd för att fungera via uttag. Sluteffekten är att erbjuda funktioner som liknar den traditionella rörledningsmekanismen i &UNIX;. </para>
 
259
<para
 
260
>Traditionella skalskript är baserade på ganska små programverktyg, som konstruerades för att enbart fungera baserade på ren text. &DCOP; tillåter att avancerade grafiska program kommunicerar med varandra på ett motsvarande sätt. Det gör det till exempel möjligt för ett &kde;-program att skicka meddelanden till ett annat &kde;-program, eller ta emot data från det för sitt eget syfte. </para>
 
261
<para
 
262
>Det finns dock nackdelar. För att använda &DCOP;, måste programmet vara konstruerat med ett speciellt &DCOP;-gränssnitt. Dessutom går &DCOP;-kommunikationsprocessen något långsamt (även om den är mycket snabbare än CORBA). Ändå så återger det mycket av styrkan och flexibiliteten i &UNIX;-skript till högnivåprogram som är baserade på ett grafiskt användargränssnitt. </para>
 
263
<para
 
264
>För ytterligare information, se artikeln <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html"
 
265
>DCOP: Desktop COmmunications Protocol</ulink
 
266
> eller <ulink url="developer.kde.org/documentation/library/cvs-api/dcop/html/index.html"
 
267
>The DCOP Desktop Communication Protocol library</ulink
 
268
>, dokumentation av användargränssnittet för &kde;:s DCOP-bibliotek. </para>
 
269
</sect2
 
270
> <!--  unixdev-dcop -->
 
271
 
 
272
</sect1
 
273
> <!--  unixdev-hl-script -->
 
274
 
 
275
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
 
276
 
 
277
<sect1 id="unixdev-buildsystems">
 
278
<title
 
279
>Byggsystem</title>
 
280
 
 
281
<para
 
282
>Utom i mycket enkla fall, kommer ett programmeringsprojekt att bestå av många byggblock med källkod, vart och ett placerat i en enskild fil för enklare underhåll. För att få allt att köra, måste man effektivt kunna översätta allt detta till några få maskinkodsenheter med lämpligt format, som gör att operativsystemet kan ladda och köra programmet. </para>
 
283
<para
 
284
>För att åstadkomma detta, är de grundläggande verktyg som behövs: <itemizedlist>
 
285
  <listitem
 
286
><para
 
287
>en <emphasis
 
288
>texteditor</emphasis
 
289
> för att skriva källkodsfilerna, </para
 
290
></listitem>
 
291
  <listitem
 
292
><para
 
293
>ett översättningsprogram, oftast en <emphasis
 
294
>kompilator</emphasis
 
295
> för att omvandla källkoden till objektfiler, </para
 
296
></listitem>
 
297
  <listitem
 
298
><para
 
299
>ett <emphasis
 
300
>biblioteksprogram</emphasis
 
301
> som samlar objektfiler i bibliotek, som enkelt kan återanvändas utan att behöva kompileras om, </para
 
302
></listitem>
 
303
  <listitem
 
304
><para
 
305
>en <emphasis
 
306
>länkare</emphasis
 
307
>, som binder ihop flera objektfiler och bibliotek till ett körbart program, </para
 
308
></listitem>
 
309
  <listitem
 
310
><para
 
311
>ett <emphasis
 
312
>byggsystem</emphasis
 
313
>, som erbjuder något sätt att hantera allt detta, och inte att förglömma, </para
 
314
></listitem>
 
315
  <listitem
 
316
><para
 
317
>en <emphasis
 
318
>avlusare</emphasis
 
319
> för att (förhoppningsvis) hitta alla fel i programmet, och möjligen ytterligare diagnosverktyg för att få allt att köra smidigt. </para
 
320
></listitem>
 
321
</itemizedlist>
 
322
</para>
 
323
 
 
324
<para
 
325
>När man har ett stort projekt, som kan bestå av upp till hundratals källkodsfiler, kan kompileringsprocessen bli riktigt arbetsintensiv. Man vill inte kompilera om alla filer varje gång några av dem har ändrats. Istället vill man bara kompilera om de filer som påverkas av ändringen. I allmänhet är det inte alltid helt uppenbart vilka av filerna som måste kompileras om. </para>
 
326
<para
 
327
>När t.ex. en funktionsprototyp i en deklarationsfil ändras, måste alla filer som beror på deklarationsfilen kompileras om. Om projektet innehåller många sådana filer kan man enkelt missa en eller två av dem om arbetet måste göras för hand. Därför behövs någon form av automatisering. </para>
 
328
 
 
329
<sect2 id="unixdev-buildsystems-make">
 
330
<title
 
331
>Byggprocessen</title>
 
332
 
 
333
<indexterm zone="unixdev-buildsystems-make">
 
334
  <primary
 
335
>bygg</primary
 
336
></indexterm>
 
337
<indexterm zone="unixdev-buildsystems-make">
 
338
  <primary
 
339
>Makefile</primary
 
340
></indexterm>
 
341
<indexterm zone="unixdev-buildsystems-make">
 
342
  <primary
 
343
>regel</primary
 
344
></indexterm>
 
345
<indexterm zone="unixdev-buildsystems-make">
 
346
  <primary
 
347
>omkompileringar</primary
 
348
></indexterm>
 
349
<indexterm zone="unixdev-buildsystems-make">
 
350
  <primary
 
351
>mål</primary
 
352
></indexterm>
 
353
<indexterm zone="unixdev-buildsystems-make">
 
354
  <primary
 
355
>beroenden</primary
 
356
></indexterm>
 
357
<indexterm zone="unixdev-buildsystems-make">
 
358
  <primary
 
359
>kommandon</primary
 
360
></indexterm>
 
361
 
 
362
<para
 
363
>Ett verktyg som tar hand om omkompileringar är <command
 
364
>make</command
 
365
>. Det håller reda på allt arbete med en uppsättning <emphasis
 
366
>regler</emphasis
 
367
>, som beskriver vad som ska göras i händelse någon viss information (oftast en källkods- eller objektkodsfil) ändrades. Alla regler som hör till ett visst projekt lagras i en så kallad <filename
 
368
>Makefile</filename
 
369
>, som behandlas av <command
 
370
>make</command
 
371
> så fort du vill uppdatera arbetet. </para>
 
372
<para
 
373
>Varje regel består av flera byggblock, närmare bestämt <itemizedlist>
 
374
  <listitem
 
375
><para
 
376
>ett <emphasis
 
377
>mål</emphasis
 
378
>, dvs filen som ska byggas </para
 
379
></listitem>
 
380
  <listitem
 
381
><para
 
382
>en uppsättning <emphasis
 
383
>beroenden</emphasis
 
384
>, i grunden namnen på de filer som målet beror på (t.ex. namnet på en källkodsfil, när målet är namnet på objektfilen som ska byggas) och </para
 
385
></listitem>
 
386
  <listitem
 
387
><para
 
388
>de <emphasis
 
389
>kommandon</emphasis
 
390
> som ska köras för att <quote
 
391
>bygga</quote
 
392
> målet (dvs. för att kompilera det eller länka ihop andra objektfiler för att skapa en körbar programfil). </para
 
393
></listitem>
 
394
</itemizedlist>
 
395
</para>
 
396
<para
 
397
>Enkelt uttryckt, läser kommandot <command
 
398
>make</command
 
399
> reglerna en i taget, kontrollerar varje fil i beroendelistan för ett givet mål, och bygger målet igen om någon av filerna har ändrats, med de kommandon som listas i regeln. </para>
 
400
<para
 
401
>Det finns flera ytterligare möjligheter att styra en sådan byggprocess, och en <filename
 
402
>Makefile</filename
 
403
> kan på så sätt växa sig mycket komplex. Vi kan inte gå in på detaljer här. Hur som helst, rekommenderar vi att du gör dig bekant med syntaxen för <command
 
404
>make</command
 
405
>. Även om du inte normalt använder det direkt, kan en förståelse för grunderna i byggsystemet vara användbar. Se <ulink url="info://make/Top"
 
406
><citetitle
 
407
>GNU make manualen</citetitle
 
408
></ulink
 
409
> för mer information. </para>
 
410
<para
 
411
>För mer detaljinformation specifik för &kdevelop;, se <link linkend="project-management"
 
412
>Bygga och projekthantering</link
 
413
> i den här handboken. </para>
 
414
<para
 
415
>Det finns flera handledningar tillgängliga, se <link linkend="automake-references"
 
416
>referenserna</link
 
417
> i kapitlet Bygga och projekthantering. </para>
 
418
</sect2
 
419
> <!-- unixdev-buildsystems-make -->
 
420
 
 
421
</sect1
 
422
> <!-- unixdev-buildsystems -->
 
423
 
 
424
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
 
425
 
 
426
<sect1 id="unixdev-guidevelopment">
 
427
<title
 
428
>Utveckling av grafiska gränssnitt</title>
 
429
 
 
430
<indexterm zone="unixdev-guidevelopment">
 
431
  <primary
 
432
>GUI</primary
 
433
></indexterm>
 
434
<indexterm zone="unixdev-guidevelopment">
 
435
  <primary
 
436
>grafiskt användargränssnitt</primary
 
437
></indexterm>
 
438
<indexterm zone="unixdev-guidevelopment">
 
439
  <primary
 
440
>användargränssnitt</primary>
 
441
  <secondary
 
442
>GUI</secondary
 
443
></indexterm>
 
444
 
 
445
<para
 
446
>Programutvecklare blir ännu mer belastade genom att de inte bara måste skapa programbibliotek och logiken, men också tillhandahålla lättanvända egenbyggda användargränssnitt som både är enkla att förstå och funktionella. De flesta programmerare får liten eller ingen utbildning i utveckling av grafiska gränssnitt, och som ett resultat är användargränssnitt ofta dåligt konstruerade. </para>
 
447
<para
 
448
>Under många år har några gemensamma designprinciper utvecklats. Du rekommenderas starkt att hålla dig till dem. På så sätt behåller ditt användargränssnitt ett gemensamt utseende och känsla, som användare av programmet tacksamt uppskattar. </para>
 
449
<para
 
450
>För utveckling av grafiska gränssnitt för &kde; finns en stilguide tillgänglig. Den finns som <ulink url="http://developer.kde.org/documentation/standards/kde/style/basics/index.html"
 
451
>&kde;:s guide för användargränssnitt</ulink
 
452
> på sidan &kde;:s utvecklingshörna. </para>
 
453
<para
 
454
>En kort introduktion till gemensamma principer för konstruktion av grafiska gränssnitt finns <ulink url="http://axp16.iie.org.mx/Monitor/v01n03/ar_ihc2.htm"
 
455
>här</ulink
 
456
>. </para>
 
457
 
 
458
</sect1
 
459
> <!-- unixdev-guidevelopment -->
 
460
 
 
461
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
 
462
 
 
463
<sect1 id="unixdev-ide">
 
464
<title
 
465
>Integration av koncept och verktyg: den integrerade utvecklingsmiljön</title>
 
466
 
 
467
<indexterm zone="unixdev-ide">
 
468
  <primary
 
469
>IDE</primary
 
470
></indexterm>
 
471
<indexterm zone="unixdev-ide">
 
472
  <primary
 
473
>integrerad utvecklingsmiljö</primary
 
474
></indexterm>
 
475
<indexterm zone="unixdev-ide">
 
476
  <primary
 
477
>utveckling</primary>
 
478
  <secondary
 
479
>IDE</secondary
 
480
></indexterm>
 
481
<indexterm zone="unixdev-ide">
 
482
  <primary
 
483
>miljö</primary>
 
484
  <secondary
 
485
>IDE</secondary
 
486
></indexterm>
 
487
 
 
488
<para
 
489
>Det finns separata verktyg tillgängliga för nästan varje steg i programmeringsprocessen: planering, redigering, processen för att hantera filer och kompilering, avlusning, dokumentation med mera. Men när projekten växer, blir programmeringsprocesserna troligtvis ganska omständliga. </para>
 
490
<para
 
491
>Mycket repetitivt arbete måste göras vid konstruktion, kompilering och avlusning av ett program. En hel del sådant arbete kan sparas genom att använda mallar och skript. Ytterligare arbete kan sparas genom att ha verktygen lätt tillgängliga, och med möjlighet att kommunicera med varandra i ett gemensamt grafiskt gränssnitt. </para>
 
492
<para
 
493
>Vore det till exempel inte bekvämt om en avlusare kunde öppna källkoden i fråga i en editor, och placera markören direkt på platsen för felet som just hittats? </para>
 
494
<para
 
495
>För att enklare uppnå ett sådant fall, togs <emphasis
 
496
>integrerade utvecklingsmiljöer</emphasis
 
497
> (IDE:er) fram. En sådan miljö integrerar alla mallar, verktyg och skript som ofta behövs i utvecklingsprocessen i en enda omgivning. </para>
 
498
<para
 
499
>&kdevelop; är en sådan integrerad utvecklingsmiljö för &kde;-plattformen. Den erbjuder ett brett spektrum av verktyg som underlättar programutveckling och underhåll, till och med för olika programspråk och olika plattformar. </para>
 
500
 
 
501
<sect2 id="unixdev-ide-kdevelop">
 
502
<title
 
503
>Grundläggande funktioner i &kdevelop; &kdevrelease;</title>
 
504
 
 
505
<indexterm zone="unixdev-ide-kdevelop">
 
506
  <primary
 
507
>&kdevelop;</primary>
 
508
  <secondary
 
509
>funktioner</secondary
 
510
></indexterm>
 
511
<indexterm zone="unixdev-ide-kdevelop">
 
512
  <primary
 
513
>funktioner</primary
 
514
></indexterm>
 
515
 
 
516
<!-- ### copied from web page, needs to be updated -->
 
517
 
 
518
<itemizedlist>
 
519
  <listitem>
 
520
  <para
 
521
>Hanterar alla <emphasis
 
522
>utvecklingsverktyg</emphasis
 
523
> som behövs för C++ programmering, som kompilator, länkare, avlusare och byggsystem.</para>
 
524
  </listitem>
 
525
  <listitem>
 
526
  <para
 
527
>Tillhandahåller en <emphasis
 
528
>programguide</emphasis
 
529
> som skapar fullständiga, körklara exempelprogram.</para>
 
530
  </listitem>
 
531
  <listitem>
 
532
  <para
 
533
>Låter användaren välja en <emphasis
 
534
>integrerad editor</emphasis
 
535
> baserad på &kde;:s programmeringseditor &kwrite;, TrollTechs <application
 
536
>Qeditor</application
 
537
> eller andra.</para>
 
538
  </listitem>
 
539
  <listitem>
 
540
  <para
 
541
>En <emphasis
 
542
>klassgenerator</emphasis
 
543
> för att skapa nya klasser och integrera dem i det nuvarande projektet.</para>
 
544
  </listitem>
 
545
  <listitem>
 
546
  <para
 
547
><emphasis
 
548
>Filhantering</emphasis
 
549
> för källkod, deklarationer, dokumentation, etc. som ska ingå i projektet.</para>
 
550
  </listitem>
 
551
  <listitem>
 
552
  <para
 
553
>Hjälp med att <emphasis
 
554
>skapa en användarhandbok</emphasis
 
555
> för programmet skriven med &kde;-verktyg.</para>
 
556
  </listitem>
 
557
  <listitem>
 
558
  <para
 
559
>Automatisk HTML-baserad <emphasis
 
560
>dokumentation av programmeringsgränssnittet</emphasis
 
561
> för projektets klasser med korsreferens till använda bibliotek.</para>
 
562
  </listitem>
 
563
  <listitem>
 
564
  <para
 
565
><emphasis
 
566
>Översättningsstöd</emphasis
 
567
> som gör det möjligt för översättare att enkelt lägga till sitt modersmål i projektet, inklusive stöd för &kbabel;.</para>
 
568
  </listitem>
 
569
  <listitem>
 
570
  <para
 
571
>Stöd för att hantera ett projekt via ett av flera <emphasis
 
572
>versionshanteringssystem</emphasis
 
573
> (t.ex. &CVS;), genom att tillhandahålla ett lättanvänt gränssnitt till funktionerna som oftast behövs.</para>
 
574
  </listitem>
 
575
  <listitem>
 
576
  <para
 
577
>Ett integrerat gränssnitt för <emphasis
 
578
>avlusning</emphasis
 
579
>.</para>
 
580
  </listitem>
 
581
  <listitem>
 
582
  <para
 
583
>En integrerad emulator av en <emphasis
 
584
>skalkonsol</emphasis
 
585
>.</para>
 
586
  </listitem>
 
587
  <listitem>
 
588
  <para
 
589
><emphasis
 
590
>Syntaxfärgläggning</emphasis
 
591
> i källkodstext.</para>
 
592
  </listitem>
 
593
  <listitem>
 
594
  <para
 
595
>En funktion för <emphasis
 
596
>automatisk kodkomplettering</emphasis
 
597
> för klassvariabler, klassmetoder, funktionsargument med mera.</para>
 
598
  </listitem>
 
599
  <listitem>
 
600
  <para
 
601
><emphasis
 
602
>Mallar för att skapa diverse projekt</emphasis
 
603
> (moduler i inställningscentralen, miniprogram i panelen &kicker;, I/O-slavar, insticksprogram till &konqueror; och skrivbordsstilar).</para>
 
604
  </listitem>
 
605
  <listitem>
 
606
  <para
 
607
>Fyra <emphasis
 
608
>trädvyer</emphasis
 
609
> för att enkelt byta mellan källkodsfiler, deklarationsfiler, klasser och dokumentation, vilket gör det onödigt med en extern filhanterare.</para>
 
610
  </listitem>
 
611
  <listitem>
 
612
  <para
 
613
><emphasis
 
614
>Stöd för korskompilering</emphasis
 
615
>, med möjlighet att ange olika kompilatorer, kompilatorflaggor, målarkitektur etc.</para>
 
616
  </listitem>
 
617
  <listitem>
 
618
  <para
 
619
>Stöd för projekt med <emphasis
 
620
>Qt/Embedded</emphasis
 
621
> (som Zaurus och IPAQ).</para>
 
622
  </listitem>
 
623
  <listitem>
 
624
  <para
 
625
>Möjlighet att <emphasis
 
626
>inkludera vilket annat program</emphasis
 
627
> som helst som du behöver för utveckling genom att lägga till det i menyn <guimenuitem
 
628
>Verktyg</guimenuitem
 
629
>, enligt dina individuella behov.</para>
 
630
  </listitem>
 
631
</itemizedlist>
 
632
 
 
633
</sect2
 
634
> <!-- unixdev-ide-kdevelop -->
 
635
 
 
636
</sect1
 
637
> <!-- unixdev-ide -->
 
638
 
 
639
</appendix
 
640
> <!-- unixdev -->
 
641