Subprograms Flashcards

(27 cards)

1
Q

Subprogramların genel özellikleri nelerdir

A

1.yalnızca bir girişi olur
2.bitene dek callerı çalışmaz
3.bitince her daim callera dönülür

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

subprogram call nedir

A

ana akışta subprogramı çağırmak için kullanılan ifade
power(2,3) ifadesi gibi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

subprogram header nedir

A

public double power(double base, double pow) ifadesi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

subprogram definition/body nedir

A

{} içinde kalan her şey

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

subprogram parameter profile nedir

A

subprogramda parametrelerin sayısı ve sırası

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

subprogram protocol nedir

A

public double power(double base, double pow) ifadesinde double ile parametrelerin birleşimi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

subprogram decleration nedir

A

subprogramın önceden
double power(double base, double pow); şeklinde sadece headerı ile tanımlanması
javada interface metotları ile c’de prototypelar örnektir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Subprogramlar, local değişkenlere nasıl erişir

A

Parameter-passing ile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Formal değişken nedir

A

Dışardan değişken almak için oluşturulan dummy değişkenler. double Power(double a, double b) derken a,b değişkenleri yani.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Actual değişken nedir

A

Dışarıdan gönderilen değişkenler. Power(x,y) derken x ve y gibi yani

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Positional parameters nedir

A

n.actualin n.formale bağlanması

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

c#da sınırsız parametre nasış atanır

A

public void fun(param int [] list)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Keyword parameter nedir

A

parametrelere isim takılması. fun(power = 2, base = 3) gibi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

subprogram tipleri nelerdir

A

procedure (return etmeyen),
function(değer döndüren)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Subprogramların kendi değişkenlerine sahip olması nasıl mümkün olur

A

1.Static variables -> compiletimeda, recursion yok
2.Stack-dynamic -> subprogram çağırıldığında, recursion var.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

parameter passing metotlar nelerdir

A

pass by value -> parantez içindeki değer kullanılabilir olsun(in)
pass by result -> parantez içindeki değere return ifadesinin karşılığı yazılsın
pass by value-result (copy)-> ikisi birden
pass by referance -> referan gönderilir, işlemlerde kullanılıp değişebilir

17
Q

pointer swap fonksiyonu nasıl çalışır?

A

int a = 3, b = 4;
swap(&a, &b);

void swap(int *x, int *y){
int *temp = x;
x = y;
y = temp;
}

18
Q

Fortran hangi parameter passing

A

77 öncesi referance, sonra value result

19
Q

C hangi parameter passing

A

pass by value ama kullanıcılar pass by referance kullanabiliyor

20
Q

cjava+ hangi parameter passing

A

nesneler pass by referance ile, kalanlar pass by value ile

21
Q

Type checking parameters

A

Fortran 77, C etmez
Fortran 90, Java, Ada ,Pascal eder

22
Q

alttaki gibi bir yapı varsayarak environmentleri yorumla

fun3():
….

fun2():
fun1(fun3);
….
….

fun1(funx):

A

shallow binding -> fun1’in environmenti
deep binding -> fun 3’ün environmenti
adhoc binding ->fun 2’nin environmentş

23
Q

static değişkenli subprogram çağrıldığında caller ne yapar

A
  1. execution statusu kaydeder
  2. parametre ve return adresi paslar
  3. kontrolü subprograma verir
24
Q

subprogram çağrıldığında callee ne yapar

A
  1. eğer out veya inout bir geçiş varsa değerleri parametrelere kaydeder
  2. eğer fonksiyonsa, sonucu bir adrese kaydeder
  3. execution statusu geri yükler
    4.kontrolü ana programa verir
25
activation record nedir
bir subprogram çağırıldığında (static değişkenleri var ise) [[local variables][parameters][return address]] şeklinde bir stack tutan yapıdır. linker tarafından oluşturulur. Stack dynamic değişkenler varsa [[l.variables][parameters][dynamiclink][return address]]
26
dynamic değişkenli subprogram çağrıldığında caller ne yapar
1.Activision record oluştur kalanı aynı
27
Block nedir
c basedlarda {} ile istediğimiz yerde local environment yaratabiliriz. Bunlar bir subprogram gibi işlenebilir veya aktif katmanın activision recorduna eklenebilir.