Subprograms Flashcards

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
Q

activation record nedir

A

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
Q

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

A

1.Activision record oluştur
kalanı aynı

27
Q

Block nedir

A

c basedlarda {} ile istediğimiz yerde local environment yaratabiliriz. Bunlar bir subprogram gibi işlenebilir veya aktif katmanın activision recorduna eklenebilir.