Ritenuto in fatto :
A.- La presente causa giudiziaria trae origine da una controversia sorta negli anni 1977-1978 tra il dott.
Ing. B._ e la X._ S.A., società da lui fondata assieme ad alcuni amici nel 1954 e nella quale ha rivestito importanti cariche dirigenziali, assumendo in particolare la direzione del settore ricerca e sviluppo. Terminata - in seguito a divergenze d'opinione con gli altri membri del consiglio di amministrazione - il 30 giugno 1977 la sua attività in seno alla X._ S.A., l'ing.
B._ ha chiesto la liquidazione di svariate pretese relative agli anni 1974-1977, e più precisamente il versamento integrale delle indennità per i brevetti relative all'esercizio 1977, quello di una percentuale del 3% sulle correzioni di inventario effettuate sino al 1976 e quello di una percentuale dello 0,5% sulla cifra d'affari dei prenditori di licenze negli anni 1974-1976. Per il futuro, B._ ha invece chiesto la continuazione, perlomeno sino all'anno 1996, del versamento delle indennità per le licenze di cui egli era inventore o coinventore, calcolate nella percentuale del 3% dell'utile netto e dello 0,5% della cifra d'affari annua della società. Egli ha inoltre rivendicato il riconoscimento di una pensione vitalizia per se stesso, o, in caso di sua morte, per la moglie e le figlie.
B.- a) Essendo naufragate le trattative per liquidare bonalmente queste pretese, il 29 maggio 1978 l'ing.
B._ ha agito in giustizia contro il suo ex-datore di lavoro, inoltrando direttamente in appello una petizione tendente al riconoscimento delle spettanze di cui sopra.
Nella risposta di causa del 28 settembre 1978, la X._ S.A. si è opposta all'azione dell'ing.
B._, contestando decisamente sia le numerose pretese relative agli anni 1974-1977, sia il diritto a ricevere delle indennità per i brevetti anche dopo la sua uscita dalla società. Pure contestato è il riconoscimento di una pensione vitalizia, rispettivamente, di vedovanza e sostentamento per moglie superstite e figlia minore. Con domanda riconvenzionale, la X._ S.A. ha fatto inoltre valere nei confronti dell'attore un risarcimento danni per fr.
1'200'000.-- in relazione al progetto - mai realizzato - di installare una fabbrica- succursale in Brasile, nonché la restituzione di numerosi importi versati a titolo di anticipo di salario e spese, per un ammontare complessivo di circa fr. 340'000.--.
b) B._ è deceduto il 2 dicembre 1986; nella causa sono subentrate la seconda moglie A._ e le due figlie, nate dal precedente matrimonio. Le figlie, avendo raggiunto nel novembre 1999 un accordo transattivo giudiziale con la X._ S.A. limitatamente alla quota successoria del 50% di loro spettanza, sono state estromesse dalla lite. La causa è continuata pertanto tra la sola vedova dell'attore e la X._ S.A., posto che in seguito allo scioglimento della comunione ereditaria e al menzionato accordo le pretese originarie formulate dalle parti in sede di petizione e domanda riconvenzionale sono state ridotte del 50%, ad eccezione della pensione di vedovanza.
c) Al termine di una lunga fase istruttoria, caratterizzata dall'assunzione di un'imponente documentazione scritta, di numerose testimonianze - anche in via rogatoriale - nonché dall'esperimento di due corpose perizie (una sui brevetti ed una contabile), nel gennaio 2000 le parti hanno presentato le rispettive conclusioni. L'attrice ha sostanzialmente riconfermato le proprie pretese, adeguando gli importi chiesti in petizione alle risultanze dell' istruttoria e specialmente alle indicazioni sortite dalle perizie. Da parte sua la convenuta ha concluso, in relazione alla rimunerazione per il 1° semestre dell'anno 1977, per un accoglimento della petizione limitatamente all'importo di fr. 23'440. 15 oltre interessi, mantenendo per il resto una ferma opposizione alle richieste di controparte.
Le richieste oggetto della domanda riconvenzionale sono invece state drasticamente ridotte a fr. 5'656. 37 oltre interessi.
d) Con decisione del 26 ottobre 2000, la II Camera civile del Tribunale d'appello del Cantone Ticino ha parzialmente accolto la petizione di A._ e respinto la domanda riconvenzionale della X._ S.A., pronunciando il seguente dispositivo:
" I.
1. La ditta X._ SA in Losone è condannata a versare
a A._ in Orselina fr. 456'001. 10 oltre
interessi al 5% dal 10 febbraio 1978.
2. È accertato in giudizio che la ditta X._ SA
in Losone è obbligata a versare annualmente a
A._ in Orselina per il periodo 1978/1996
importi corrispondenti allo 0,166% della propria
cifra d'affari ed al 1% del proprio utile netto prima
degli ammortamenti, ritenuto che detti importi si riducono annualmente del 5% a partire dal 1978.
§ Sull'importo concernente il 1978 devono essere imputati
gli acconti per complessivi fr. 50'000.-- corrisposti dalla ditta X._ SA in Losone all'
ing. B._ in Orselina.
3. La ditta X._ SA in Losone è condannata a versare
a A._ in Orselina a partire dal 1° luglio
1977 e fino al 2 dicembre 1986 una pensione vitalizia
di fr. 30'000.-- annui, da pagarsi in rate
mensili posticipate, più interesse legale del 5%
dalla scadenza delle singole rate, ritenuto che dal
2 dicembre 1986 la pensione vitalizia, dovuta secondo
le medesime modalità, ammonta a fr. 37'500.-- annui.
II. ....
III. La domanda riconvenzionale 28 settembre 1978 di X._ SA è respinta.
IV-V. ....".
C.- Contro questa decisione tanto la X._ S.A., quanto A._ sono insorti dinanzi al Tribunale federale, il 30 novembre 2000, con duplice ricorso per riforma e di diritto pubblico.
La X._ S.A. chiede preliminarmente di dichiarare inammissibile la domanda di accertamento contemplata al punto 2 della petizione. Nel merito, invocando in particolare la violazione degli art. 1, 2, 18, 332 e 517 CO, essa postula la reiezione delle pretese di parte attrice tendenti al riconoscimento del diritto ad una indennità per i brevetti dopo il 1° luglio 1977 come pure il diritto ad una pensione vitalizia sino al 1986 ed in seguito di vedovanza.
Parzialmente ammesse risultano solo le pretese relative al 1° semestre dell'anno 1977, comprese nel punto I.1 del dispositivo, ammontanti - secondo i calcoli esposti della convenuta - a fr. 190'840. 40 oltre interessi a 5% a decorrere dal 10 febbraio 1978. Su questo specifico punto la X._ S.A. sostiene inoltre che la Corte cantonale sarebbe incorsa in una svista manifesta ai sensi dell'art. 63 cpv. 2 OG.
A._ chiede invece la riforma dei dispositivi I/1, I/2 e II della decisione impugnata, nel senso di annullare la riduzione di 1/3 delle indennità per licenze operata dal Tribunale d'appello. A sostegno della propria impugnativa invoca una violazione dei disposti degli art. 1 e 2 CC e 18 CO.
Con risposte, rispettivamente, del 26 marzo e 22 maggio 2001, attrice e convenuta chiedono la reiezione dei gravami di controparte, nella misura in cui sono ammissibili.

Considerando in diritto :
1.- In data odierna i paralleli ricorsi di diritto pubblico sono stati respinti. Nulla osta pertanto all'esame dei presenti gravami.
2.- Il ricorso per riforma è ricevibile per la violazione del diritto federale, segnatamente se un principio derivante da una prescrizione federale non è applicato o lo è in modo errato (art. 43 cpv. 1 e 2 OG); l'apprezzamento giuridico erroneo di un fatto è parificato alla violazione del diritto (art. 43 cpv. 4 OG). Il diritto federale non è di regola violato da accertamenti di fatto (art. 43 cpv. 3 OG). Il Tribunale federale fonda il suo giudizio sui fatti così come sono stati accertati dall'ultima istanza cantonale, a meno che siano state violate disposizioni federali in materia di prove, che debbano essere rettificati accertamenti di fatto derivanti da una svista manifesta o che si renda necessario un complemento degli stessi (art. 63 e 64 OG; <ref-ruling> consid. 2, 115 II 484 consid. 2a). Fatte salve le eccezioni appena menzionate, critiche rivolte contro le risultanze di fatto e la valutazione delle prove eseguiti dall'autorità cantonale sono invece inammissibili (<ref-ruling> consid. 2b, 119 II 380 consid. 3b, 115 II 484 consid. 2a).
I. Ricorso X._ S.A.
3.- La Corte cantonale ha preliminarmente osservato che l'attività inventiva dell'ing. B._ era di natura dipendente, soggetta alle disposizioni del contratto di lavoro; rientravano invece nel contratto di mandato le sue mansioni quale membro del consiglio di amministrazione e direttore del comparto ricerca e sviluppo. In punto alla rimunerazione, i giudici cantonali hanno stabilito che, mancando un contratto vero e proprio, i rapporti tra l'attore e la X._ S.A. erano regolati da decisioni del consiglio di amministrazione, ed in particolare da quella del 16/17 settembre 1963, secondo la quale all'attore spettava da un lato un salario fisso con rimborso spese, e dall'altro, per le licenze, una percentuale dello 0,5% della cifra d'affari della società e del 3% dell'utile netto prima degli ammortamenti; essi hanno pure accertato che tale regime retributivo è rimasto in vigore, senza cambiamenti di sostanza, sino al 31 dicembre 1976.
L'autorità cantonale si è in seguito chinata sulla (controversa) questione di sapere se il versamento delle percentuali su cifra d'affari e utile andasse esclusivamente ad indennizzare l'importante attività inventiva svolta dall'attore, oppure - come sostenuto dalla convenuta - se questo non costituiva, almeno in parte, una semplice modalità di pagamento del suo salario, dettata perlopiù da motivi di risparmio fiscale. Ebbene, considerando le circostanze specifiche dell'attività di B._ e paragonando la sua retribuzione a quella di altri dirigenti della società, essa è giunta alla conclusione che nella misura dei 2/3 tali percentuali costituivano una vera e propria indennità per licenze - direttamente legata all'attività inventiva - mentre per la restante quota servivano a ricompensare la sua funzione di delegato e membro del consiglio di amministrazione, nonché di direttore del comparto sviluppo e ricerca. Dopo aver premesso che, in principio, l'art. 332 cpv. 1 CO non riconosce al lavoratore alcun diritto ad una rimunerazione per invenzioni da lui fatte nell'ambito dell' attività dipendente, la Corte cantonale ha nondimeno osservato che tale norma ha carattere dispositivo e nulla impedisce alle parti di derogarvi, come è stato il caso in concreto. Indipendentemente dall'esistenza di una simile pattuizione, i giudici cantonali hanno inoltre affermato che una rimunerazione era senz'altro dovuta all'attore in base al cosiddetto "Sonderleistungsprinzip" (letteralmente:
principio della prestazione straordinaria); per le sue eccezionali doti inventive, questi può infatti essere definito il vero e proprio artefice dello sviluppo tecnologico dell'azienda per oltre 20 anni. Infine, la Corte cantonale ha stabilito - richiamandosi in parte alle considerazioni del perito, che proponeva un'applicazione analogica dei principi legali e giurisprudenziali sviluppati in Germania su questo tema - che l'obbligo di indennizzo per le licenze si protrae oltre la scadenza del contratto di lavoro, e più precisamente sino allo spirare del termine di protezione legale delle licenze stesse, fissato in Svizzera a 20 anni (art. 14 cpv. 1 LBI). A prescindere dalla fondatezza o meno di un'obbligo di indennizzo basato sul "Sonderleistungsprinzip", decisivo ai fini del giudizio è risultato comunque il fatto - emerso inequivocabilmente dagli atti - che la società si era impegnata a continuare a retribuire l'ex-dipendente per le sue invenzioni brevettate anche dopo la cessazione del rapporto di lavoro.
Stabilito il principio dell'indennità per licenze oltre la scadenza del contratto di lavoro, e la sua durata (20 anni), l'autorità cantonale ne ha infine calcolato il quantum sulla base degli esistenti accordi tra le parti (percentuali sulla cifra d'affari e sull'utile), ritenuta sensata una progressiva riduzione del 5% annuo delle stesse a far capo dal 1978.
4.- In ingresso al suo gravame la convenuta sostiene che la Corte cantonale avrebbe leso il diritto federale nella misura in cui ha accolto l'azione di accertamento, riconoscendo all'attrice il diritto di percepire un' indennità per licenze per il periodo 1978-1996. A mente della convenuta tale azione andava invece dichiarata inammissibile; essa osserva che le pretese oggetto della domanda di accertamento, formulata nel 1978, sono infatti divenute esigibili nella loro integralità durante il procedimento, al più tardi con la scadenza dell'anno 1996. Nulla muta l'impossibilità, secondo il CPC/TI, di trasformare l' azione di accertamento in azione condannatoria pendente causa; già in sede di petizione, l'attore avrebbe potuto (e dovuto) proporre un'azione condannatoria per gli anni a venire, basandosi sui dati contabili della X._ S.A.
degli anni 1976-77 e riservandosi semmai un adeguamento degli importi chiesti a dipendenza delle risultanze peritali, così come ha effettivamente fatto per le pretese relative alle indennità per licenze dell'anno 1977 (vedi punto n. 1.3 della petizione).
a) L'esistenza di un'interesse legittimo all'azione di accertamento è un presupposto processuale che il giudice esamina d'ufficio in qualsiasi stadio della procedura; ravvisandone la mancanza, deve respingere la petizione senza entrare nel merito (<ref-ruling> consid. 1a; <ref-ruling>; <ref-ruling> consid. 2).
Le condizioni di ammissibilità di questo genere di azione sono state a più riprese precisate: presupposto indispensabile è l'esistenza di un interesse legittimo della parte attrice a vedere chiarito sollecitamente un rapporto giuridico controverso. L'interesse è ritenuto dato quando risulti un'insicurezza in punto ad un rapporto giuridico, quando tale incertezza giuridica costituisce per l'attore una minaccia suscettibile di inconvenienti se non viene eliminata oppure ancora quando l'azione di accertamento appaia il mezzo appropriato per eliminare questa insicurezza.
L'interesse giuridico deve risultare concreto ed attuale, e non solo potenziale; può trattarsi anche di un interesse di fatto - ad esempio di natura puramente economica - a condizione però che sia essenziale e degno di protezione (<ref-ruling> consid. 2a; <ref-ruling> consid. 2a). La giurisprudenza ha stabilito in modo relativamente ampio i limiti di una domanda di accertamento, ammettendo, ad esempio, anche la constatazione di fatti appartenenti al passato; l'ammissibilità di un'azione di accertamento non dipende infatti dall'applicazione di criteri formali ma bensì dall'interesse dell'attore ad ottenere l'accertamento richiesto (<ref-ruling> consid. 2a).
Va comunque rilevato che l'azione di accertamento è sussidiaria, essendo ammissibile unicamente quando la constatazione positiva o negativa di un diritto o di un rapporto giuridico (a seconda delle domande formulate) sia l' unico mezzo processuale a disposizione per la tutela di questo diritto o rapporto giuridico; non si giustifica invece quando è possibile far valere questo diritto con un' azione condannatoria o di ripristino (sulla natura, le condizioni e l'ammissibilità di questa azione si vedano in particolare: Guldener, Schweizerisches Zivilprozessrecht, 3a ed., Zurigo 1979, § 24, pagg. 207-211; Vogel, Grundriss des Zivilprozessrechts, 5a ed., Berna 1997, § 34 II, pag. 185-187, Bodmer, Die allgemeine Feststellungsklage im schweizerischen Privatrecht, tesi, Basilea 1984, in particolare sul rapporto tra azione di accertamento e azione condannatoria le pag. da 97 a 107, Cocchi-Trezzini, CPC-TI massimato e commentato, ad art. 71, n. 1-9, pag. 207-210, Poudret, Commentaire de la loi fédérale d'organisation judiciaire, art. 40 n. 2, art. 43 n. 1.3.2.8).
b) In concreto, già in occasione di una decisione pregiudiziale del 16 giugno 1983, la II Camera civile del Tribunale d'appello si era pronunciata su una richiesta di mutazione dell'azione presentata da parte attrice. L'autorità cantonale era allora giunta alla conclusione che, terminata la fase dello scambio degli allegati ed entrati nella fase istruttoria, non era più possibile mutare l' azione di accertamento in un'azione di condanna in assenza degli estremi di cui agli art. 74 lett. a e 75 lett. b CPC/ TI. La questione non è più stata ripresa in seguito; in particolare non se ne fa cenno negli allegati conclusivi inoltrati dinanzi al Tribunale d'appello nel gennaio 2000 né nella sentenza impugnata. È solo in sede di ricorso per riforma che la convenuta ha sollevato l'eccezione di irricevibilità dell'azione di accertamento. La censura è comunque ricevibile, posto che ai sensi della citata giurisprudenza e dottrina, la verifica dell'esistenza di un interesse legittimo a supporto dell'azione di accertamento deve essere esaminata d'ufficio dal giudice in ogni stadio della causa. L'ammissione o il rigetto della proponibilità di questa azione, in quanto fondata sul diritto federale, può essere censurato con ricorso per riforma (<ref-ruling> consid. 1a; <ref-ruling> consid. 2; Bodmer, op. cit. pag. 49; Poudret, op. cit. , art. 43 n. 1.3.2.8, pag. 121 "in fine"; Cocchi-Trezzini, op. cit. , art. 71 n. 5, pag. 208-208).
c) L'azione dell'ing. B._ era in sostanza tesa a far accertare in giudizio un suo diritto a percepire dalla convenuta un'indennità per licenze nel periodo 1978-1996, per importi annuali corrispondenti allo 0,5% della cifra d'affari e al 3% dell'utile netto della società. A prescindere dalla controversia esistente sul rapporto giuridico di base, è ovvio che queste pretese non erano, a quell'epoca, né esigibili né quantificabili in un importo pecuniario preciso, trattandosi di percentuali su cifra d' affari e utile netto di esercizi futuri dell'azienda.
aa) Vale anzitutto la pena di esaminare se, come rilevato sia pur di passaggio dalla convenuta, al momento dell'introduzione della causa l'attore disponeva di un interesse legittimo all'azione di accertamento oppure se facendo questi difetto, avrebbe già allora dovuto inoltrare un'azione di tipo condannatorio.
La questione va risolta positivamente: dottrina e giurisprudenza ammettono infatti l'inoltro di un'azione di accertamento qualora il creditore non sia in grado di procedere all'incasso di pretese creditorie perché non ancora esigibili nella loro integralità oppure quando solo una parte del credito sia già esigibile - mentre quello futuro non è né determinato né determinabile - e intenda quindi disporre di una sentenza di accertamento quale premessa per una successiva azione condannatoria (Vogel, op. cit. , p. 187; <ref-ruling> consid. 2a, pag. 371; <ref-ruling> consid. 1c; <ref-ruling> consid. 2). In simili circostanze è ammessa pure la combinazione delle due azioni (Bodmer, op.
cit. , pag. 102): è precisamente quanto avvenuto nella fattispecie, visto che l'attore ha fatto valere le pretese di indennità relative all'anno 1977, già scadute e quindi esigibili, per via condannatoria, con riserva di adeguamento successivo per quanto attiene al loro importo, mentre ha chiesto un semplice accertamento giudiziario di quelle per il periodo 1978-1996, non ancora esigibili.
bb) La convenuta asserisce però che, con il perdurare della causa e il maturare degli esercizi contabili della X._ S.A., le pretese sono diventate man mano esigibili e quindi suscettibili di una domanda condannatoria; al più tardi a partire dal 1996, e sicuramente alla data della decisione della Corte cantonale (26 ottobre 2000), tutte le pretese oggetto della domanda di accertamento potevano essere fatte valere in via condannatoria.
Orbene, l'interesse legittimo all'azione di accertamento deve sussistere non solo al momento dell'introduzione dell'azione, ma anche a quello della decisione; il Tribunale federale ha ad esempio stabilito, nella sentenza <ref-ruling>, che l'azione di accertamento della validità di un brevetto non è più ammissibile se nelle more del giudizio il richiedente ha lasciato scadere la protezione di questo brevetto. Nei casi di un accertamento di natura positiva in particolare, l'interesse all'azione decade se durante il procedimento diventa possibile per l'attore rivendicare per intero le sue pretese con una domanda condannatoria (Guldener, op. cit. , pag. 211; Frank/Sträuli/Messmer, Kommentar zur zürcherischen Zivilprozessordnung, 3a ed., Zurigo 1997, § 59, n. 15).
cc) La rigida applicazione di questo principio nel presente caso conduce tuttavia ad un risultato che contraddice i noti principi dell'equità e dell'economia processuale.
Da un lato, se pur è pacifico che le pretese oggetto della domanda di accertamento sono diventate esigibili alla scadenza di ogni anno contabile, e al più tardi nella loro integralità alla fine del 1996, era d'altra parte oggettivamente difficile immaginare, al momento dell'introduzione della causa nel 1978, che questa si sarebbe trascinata dinanzi all'istanza cantonale per oltre 22 anni prima della decisione. Dichiarare oggi inammissibile l'azione di accertamento e pretendere l'introduzione di un'azione condannatoria, significherebbe iniziare una nuova fase istruttoria allo scopo di esaminare la fondatezza materiale delle pretese per indennità per licenze sul periodo 1978-1996, allorquando questa è già stata sostanzialmente esperita nella presente causa con un notevole dispendio di tempo e di mezzi:
si pensi solamente all'allestimento delle due perizie tecniche e alla raccolta delle numerose testimonianze, anche per via rogatoriale. Senza dimenticare, come obbiettato dall'attrice, che l'assunzione delle testimonianze avrebbe oggi un valore molto relativo, vuoi perché i testi dovrebbero pronunciarsi su fatti occorsi 25 anni orsono, vuoi semplicemente per l'indisponibilità di alcuni degli interessati, nel frattempo deceduti.
Già nel 1983 l'attore aveva postulato, nell'ambito dell'assunzione delle prove, una mutazione dell'azione da accertamento in condannatoria, e questo per permettere di sottoporre al perito giudiziario l'accertamento dei dati contabili della X._ S.A. per il periodo seguente il 1977. Contrariamente a quanto avviene in altri cantoni (ad esempio Zurigo), il diritto procedurale ticinese non permette però - come d'altronde deciso dal Tribunale d'appello ticinese in questa stessa causa - di mutare il genere dell' azione una volta entrati nella fase istruttoria (Cocchi-Trezzini, op. cit. , art. 71 n. 7, pag. 209, art. 74 n. 2 e n. 5, pagg. 216-217). Ciò ha comportato in primo luogo l' impossibilità, per l'attrice, di disporre nella procedura dinanzi al Tribunale d'appello dei dati contabili della X._ S.A. necessari per quantificare le proprie pretese ed inoltrare un'azione condannatoria. Ma anche a prescindere dalla possibilità oggettiva di formulare nelle more del giudizio un'azione di condanna, dal profilo procedurale la sua introduzione parallelamente ad un'azione di accertamento già pendente si sarebbe certamente scontrata con l'eccezione di litispendenza. Né era pensabile per l'attrice ritirare l'azione di accertamento e sostituirla con una di natura condannatoria senza subire pesanti pregiudizi di carattere giuridico e pecuniario: in forza dell'art. 77 CPC/TI, dopo la sua notifica alla controparte, un'azione può essere ritirata e sostituita solo con il consenso del convenuto, senza il quale il ritiro vale desistenza (cpv. 2) e comporta la rifusione di spese giudiziarie e di patrocinio tassate equamente (cpv. 3).
d) Per i peculiari motivi testé esposti si giustifica in concreto derogare al principio della sussidiarietà dell'azione in accertamento e concedere che, al momento della decisione cantonale, l'attrice disponeva ancora di un interesse legittimo all'azione di accertamento. Ammettendo simile azione, la Corte cantonale non ha pertanto violato il diritto federale.
5.- La convenuta ritiene che le tesi sviluppate dall'autorità cantonale in merito al diritto dell'attore a percepire delle indennità per licenze siano contrarie al diritto federale. Essa sostiene innanzitutto che la Corte cantonale non aveva nessun bisogno di dipartirsi dalla soluzione prevista dall'art. 332 cpv. 1 CO, né vi era spazio alcuno in concreto per applicare il cosiddetto "Sonderleistungsprinzip", di cui ad ogni modo contesta la portata.
a) La Corte cantonale ha in primo luogo rettamente stabilito che se il tenore letterale dell'art. 332 cpv. 1 CO esclude di principio qualsiasi compenso per le invenzioni del lavoratore nello svolgimento della sua attività lavorativa (le cosiddette "invenzioni di servizio"), è altrettanto vero che - trattandosi di una norma dispositiva (art. 361 e 362 CO "a contrario") - le parti possono convenire una particolare forma di retribuzione per questa sua attività sottoforma, ad esempio, di gratificazione oppure di partecipazione al risultato d'esercizio (art. 322a CO).
Questa facoltà si iscrive nel più generale principio dell' autonomia contrattuale, per il quale le parti possono - nei limiti delle disposizioni imperative di legge - definire liberamente e in piena autonomia il contenuto dei contratti (art. 19 CO), anche quando questo consiste in prestazioni lavorative (Brunner/Bühler/Waeber, Commentaire du contrat du travail, 2a ed., Losanna 1996, n. 4 e 5 ad art. 332 CO, pag. 153; Rehbinder, Commentario bernese, n. 7-8 ad art. 332 CO; Wolfgang Portmann, Die Arbeitnehmererfindung, tesi, Zurigo 1986, pag. 76-78; Brühwiler, Kommentar zum Einzelarbeitsvertrag, 2a ed., Berna/Stoccarda/Vienna, n. 7 ad art. 332 CO).
b) Nella fattispecie, la Corte cantonale ha accertato - in modo vincolante per il Tribunale federale (art. 55 cpv. 1 lett. c OG) - sulla base di numerosi atti dell' incarto, ed in particolare di alcune fondamentali decisioni del Consiglio di amministrazione, che l'azienda aveva deciso di retribuire l'attore per le sue invenzioni brevettabili conferendogli, oltre all'usuale salario fisso con rimborso spese, una partecipazione percentuale all'utile netto e alla cifra d'affari della società. La terminologia usata in questi atti non lascia, a mente dei giudici cantonali, invero dubbi sul fatto che tale rimunerazione particolare dipendeva espressamente dall'attività inventiva dell'attore.
Il fatto che poi parte di questi compensi retribuivano (nella misura di 1/3) l'attività dirigenziale di B._ non muta la validità delle conclusioni a cui è giunta l' autorità inferiore: determinante è che la X._ S.A.
ha espressamente riconosciuto, per il tramite delle sue dichiarazioni di volontà e il suo ripetuto comportamento durante gli anni, di voler remunerare l'attore per le sue invenzioni, e questo in deroga al regime legale previsto all' art. 332 cpv. 1 CO. In simili circostanze è superfluo esaminare la controversa (perlomeno nel diritto svizzero) questione legata al principio della "Sonderleistung", per il quale, indipendentemente dalle prescrizioni contenute nel CO, al lavoratore che contribuisce con le sue invenzioni al benessere del datore di lavoro in misura straordinaria andrebbero riconosciute "ex-lege" delle indennità particolari:
va ribadito che il Tribunale d'appello, pur esaminandolo, non ha per finire ritenuto decisivo questo argomento (cfr. consid. n. 3.3.1.2), giudicando che a prescindere dalla fondatezza di una simile tesi, dagli atti formanti l' incarto emerge in ogni caso con sufficiente chiarezza la volontà di remunerare in modo specifico l'attore per la sua attività inventiva.
c) In conclusione, le censure ricorsuali su questo punto vanno dichiarate inammissibili, laddove criticano gli accertamenti di fatto ritenuti dalla Corte cantonale per il suo giudizio, o infondate, nella misura in cui pretendono che questa abbia violato il diritto federale interpretando il valore dispositivo dell'art. 332 cpv. 1 CO.
6.- Fin qui la qualifica dei rapporti contrattuali durante gli anni di occupazione dell'attore presso la X._ S.A..
Più controversa è la questione di sapere se questo particolare obbligo di rimunerazione per i brevetti - liberamente pattuito - continui anche oltre la data di scadenza contrattuale. Una volta ancora, la Corte cantonale, rilevata l'assenza di un esplicito accordo in tal senso, ha ricostruito la volontà delle parti sulla base delle loro dichiarazioni e del loro comportamento durante le fasi immediatamente precedenti e seguenti la risoluzione dei rapporti contrattuali (anni 1976/1977).
La convenuta contesta l'interpretazione di queste circostanze fornita dai giudici ticinesi, adducendo una violazione dell'art. 18 CO, oltre che dell'art. 332 cpv. 1 CO; nella pur denegata ipotesi in cui si volesse ritenere che le parti abbiano validamente derogato alle disposizioni del CO, pattuendo una rimunerazione speciale delle attività inventive dell'attore, la X._ S.A. nega che sia possibile dedurre dai loro accordi o dalle loro dichiarazioni un qualsiasi obbligo di retribuzione anche dopo il termine dei rapporti contrattuali: con l'uscita dell'attore dalla società ogni vicendevole impegno tra datore di lavoro e lavoratore sarebbe automaticamente estinto. Nella misura in cui ha proceduto ad un inammissibile adattamento del contratto, la decisione contravverrebbe inoltre al principio della buona fede sancito all'art. 2 CC.
a) Il contenuto di un contratto viene determinato in primo luogo mediante l'interpretazione soggettiva, ovvero sulla base della vera e concorde volontà dei contraenti (art. 18 cpv. 1 CO; Kramer, Commentario bernese, n. 76 ad art. 18 CO). Per l'interpretazione di dichiarazioni scritte occorre riferirsi innanzitutto al testo delle stesse (Kramer, op. cit. , n. 22 ad art. 18 CO; Jäggi/Gauch, Commentario zurighese, n. 345 ad art. 18 CO; Gauch/Schluep, Schweizerisches Obligationenrecht, 5a ed., n. 1206). È solo quando non esistono degli accertamenti di fatto sulla reale concordanza della volontà delle parti o se il giudice constata che una parte non ha compreso la volontà dell'altra, che la loro (presunta) volontà viene accertata interpretando le loro dichiarazioni secondo il principio dell'affidamento (interpretazione oggettiva), ovvero secondo il senso che ogni contraente poteva e doveva ragionevolmente attribuire alle dichiarazioni di volontà dell'altro nella situazione concreta (<ref-ruling> consid. 2b, 123 III 165 consid. 3a pag. 168, <ref-ruling> consid. 4b/aa; <ref-ruling> con rinvii). A questo scopo non vanno considerati solamente il testo e il contesto delle dichiarazioni, ma bensì anche le circostanze che hanno preceduto o accompagnato la stipulazione del contratto (<ref-ruling> consid. 2a; <ref-ruling> consid. 5a; <ref-ruling> consid. 4b/aa p. 123; <ref-ruling> consid. 3a con rinvii). L'interpretazione del contratto giusta il principio dell'affidamento è una questione concernente l'applicazione del diritto, che può essere esaminata liberamente nella giurisdizione per riforma (<ref-ruling> consid. 2a/aa; <ref-ruling> consid. 2b, 165 consid. 3a, <ref-ruling> consid. 5a, 420 consid. 3a; <ref-ruling> consid. 4b/aa).
b) La convenuta asserisce che la Corte cantonale ha proceduto ad una completazione del contratto tra le parti - estendendone l'efficacia temporale anche dopo il termine dei rapporti di lavoro - pur in assenza di riscontri oggettivi che giustificassero simile completazione, e interpretando anzi in maniera del tutto inammissibile la sua volontà e il suo comportamento. Essa ritiene che nella fattispecie non sono dati i presupposti per un intervento del giudice a colmare una presunta lacuna contrattuale, né applicando principi generali del diritto contrattuale quali la clausola "rebus sic stantibus" né, tantomeno, facendo ricorso a principi legali e giurisprudenziali stranieri che si pongono in netta contrapposizione con le soluzioni ritenute dal diritto svizzero.
c) Orbene, la convenuta sembra misconoscere che per stabilire il principio ad un'indennità per licenze dopo la scadenza del contratto di lavoro, la Corte cantonale si è essenzialmente fondata sul già citato scritto del 5 luglio 1977 (doc. 90) e su alcune testimonianze che riferiscono del tenore delle discussioni tenutesi all'interno della dirigenza X._ S.A. in quel periodo a proposito delle rivendicazioni dell'attore (cfr. consid. 3.3.1.2 della sentenza impugnata). A mente dei giudici cantonali tale scritto, redatto a pochi giorni dalla fine dei rapporti di lavoro dalla persona con la più alta carica dirigenziale della società, può solo significare che - impregiudicati i diritti di un'eventuale accordo complessivo tra le parti, allora in discussione - la X._ S.A. si impegnava espressamente a corrispondere all'attore anche in futuro delle indennità in relazione all'attività inventiva da lui svolta in precedenza. Il testo è inoltre sufficientemente chiaro per dedurne che il riconoscimento del principio a queste indennità non era subordinato né al buon esito delle trattative e alla conseguente sottoscrizione di un accordo globale né alla prosecuzione dell'attività dell'ing.
B._ quale collaboratore esterno della ditta nel campo della ricerca. Il Tribunale d'appello ha giustamente rilevato che la convenuta, malgrado l'imponente massa probatoria prodotta, non è riuscita a relativizzare la portata di questo documento. Al contrario, il contesto temporale e le circostanze di fatto che hanno accompagnato questa dichiarazione ne rafforzano semmai la valenza: da una parte la società ha continuato a versare nei mesi successivi (e fino a marzo del 1978) importi mensili di fr. 20'000.-- all'attore a valere quali "acconti" sulle indennità per licenze che ancora gli spettavano, dall'altra la bozza dell' accordo complessivo che avrebbe dovuto tacitare le pretese dell'attore - elaborata nel gennaio del 1977 - prevedeva, significativamente, il pagamento di tali indennità sino al 1985, pur con riduzione progressiva degli importi (cfr.
doc. Z/1, punto 6.1). Traspare infine dalle discussioni avutesi all'interno della dirigenza della X._ S.A.
in quel periodo, che vi era una sostanziale consapevolezza sull'obbligo di corrispondere anche in futuro all'attore delle indennità per la sua precedente attività (cfr. testimonianze C._ e D._).
La tesi ricorsuale secondo la quale con la fine dei rapporti di lavoro sarebbe decaduto ogni obbligo di indennizzo a favore dell'attore si rivela in definitiva infondata già per il solo motivo che la convenuta medesima, derogando una volta di più alle disposizioni legali (art. 332 cpv. 1 CO), ha espressamente promesso al suo ex-dipendente la continuazione del versamento delle indennità per licenze.
In simili circostanze non si può imputare alla Corte cantonale di aver violato il diritto federale, segnatamente il principio dell'affidamento risultante dall'art. 18 CO o quello della protezione della buona fede dell'art. 2 CC.
Giova inoltre rilevare che su questo punto la convenuta si dilunga in censure in gran parte inammissibili in un ricorso per riforma, proponendo critiche agli accertamenti di fatto e all'amministrazione delle prove operati dai giudici cantonali.
7.- Resta infine da esaminare se, posto il diritto ad una retribuzione oltre i termini del contratto di lavoro, il Tribunale d'appello ne ha rettamente determinato la durata di 20 anni e l'entità sulla base degli esistenti accordi tra le parti. Nel fare ciò, i giudici ticinesi si sono basati preponderatamente sulle risultanze della perizia brevetti esperita dal prof. E._. A questo proposito la convenuta rimprovera alla Corte cantonale di aver acriticamente sposato le considerazioni peritali, ed in particolare il suggerimento di far capo, per stabilire se l'indennità doveva essere modificata con il trascorrere del tempo, ad un completamento del contratto sulla base delle norme generali del diritto contrattuale (cfr. in particolare pag. 45-51 della perizia brevetti, risposta al quesito 14d di parte attrice).
a) Nel caso concreto la soluzione del completamento del contratto (e non dell'adattamento, come - qua e là - sostenuto dalla convenuta) adottata dalla Corte cantonale, sia pure sulla base delle osservazioni del perito, non appare contraria al diritto federale. Essa è conforme alla giurisprudenza secondo cui i contraenti possono, in linea di principio, regolare liberamente gli effetti che il venir meno di una parte del loro accordo produce sul quella che, di per sé, potrebbe rimanere in vigore; dottrina e giurisprudenza stabiliscono che se i contraenti non hanno disciplinato tali effetti, il loro accordo deve, ove occorra, essere completato (Jäggi/Gauch, op. cit. , n. 486 ad art. 18 CO; Kramer, op. cit. , n. 213 e 224 e segg. ad art. 18 CO, con i riferimenti ivi citati). Incombe infatti al giudice di completare i contratti che sono stati validamente conclusi, ma che non prevedono una soluzione a difficoltà sorte tra le parti. In assenza di norme legali sostitutive, l'unica via per procedere al completamento consiste nel cercare di determinare ciò che le parti avrebbero convenuto ove avessero previsto l'ipotesi non regolata; a tal uopo, il giudice considera l'economia del contratto e il suo scopo, e tiene conto dell'insieme delle circostanze (<ref-ruling> consid. 4b, con riferimenti dottrinali e giurisprudenziali citati). Gli stessi principi si applicano al completamento dei contratti innominati o complessi (<ref-ruling> consid. 3, e rinvii dottrinali). In altri termini, quando, durante la sua esecuzione, un contratto risulti lacunoso perché le parti si trovano confrontate a un problema nuovo, imprevisto o non espressamente regolato, che esige una soluzione per l'adempimento regolare dello stesso, il giudice deve colmare la lacuna come l'avrebbero fatto dei contraenti ragionevoli (<ref-ruling> consid. 2; <ref-ruling> consid. 3a,3b).
b) Il completamento del contratto conformemente all'art. 2 cpv. 2 CO costituisce una questione di diritto che il Tribunale federale esamina liberamente in base ai fatti accertati dall'istanza precedente (<ref-ruling> consid. 4 e rinvii). Considerato che il diritto dell'attore a continuare a percepire delle indennità per licenze anche in futuro è assodato, ma che le parti non hanno esplicitamente regolato né la durata di questo impegno né la sua entità, l'accordo presenta senz'altro una lacuna. Ora, la completazione effettuata dalla Corte cantonale è conforme ai principi sopra illustrati.
c) Il regime retributivo in vigore sin dal 1963 (indennità per licenza calcolata in base ad una percentuale fissa della cifra d'affari e dell'utile netto della società) può essere ritenuto valido anche dopo il 30 giugno 1977, atteso che - giusta i vincolanti accertamenti peritali - al momento della cessazione del rapporto di lavoro con la X._ S.A. la totalità della produzione di quest' ultima era basata su brevetti dei quali l'attore era stato inventore o coinventore e che la ditta convenuta continuava quindi a godere pienamente dei frutti dell'attività inventiva del suo ex-lavoratore. Allo stesso modo non si può imputare alla Corte cantonale di aver trascurato il fatto che, con il trascorrere degli anni, la protezione legale dei brevetti è man mano venuta meno e la produzione della X._ S.A. si è vieppiù orientata su nuovi brevetti, sviluppati in modo autonomo posteriormente all'uscita dell' attore dalla società, e che pertanto le indennità dovevano essere progressivamente ridotte. Rilevato dalla perizia che tutti i 57 brevetti in vigore nel 1977 di cui l'attore è stato in larga misura partecipe sono giunti a scadenza a fine del 1996 e che questi sono stati progressivamente sostituiti nella composizione della cifra d'affari e dell' utile netto della società da nuovi brevetti (cfr. i dati alle pagg. 11-13 della perizia), il criterio del 5% annuo (100% : 20 anni) scelto per stabilire la misura della riduzione dell'indennità nel tempo appare - in assenza di argomentazioni più convincenti dal profilo pratico - logico esostenibile.
d) Altrettanto si può dire per le considerazioni in merito alla durata delle indennità. La Corte cantonale ha statuito, concordemente all'opinione del perito, che in assenza di accordi particolari tra le parti, la retribuzione è in principio dovuta sino alla scadenza del termine legale di protezione dei brevetti, dato che il datore di lavoro continua a godere delle licenze sino a quel momento.
Che le constatazioni peritali al proposito si fondino in parte su principi legali (§ 26 ArbEG) e giurisprudenziali sviluppati in Germania su questo particolare tema non ha nessuna importanza ai fini del giudizio (cfr. perizia brevetti, pag. 47). Quello che importa è che i giudici - ai quali esclusivamente compete l'apprezzamento delle prove e la soluzione delle questioni giuridiche (<ref-ruling> consid. 1b) - abbiano ritenuto compatibile questa soluzione sia con le circostanze particolari del caso sia con l'ordinamento giuridico interno, osservando rettamente che in Svizzera la protezione legale dei brevetti si estende per un massimo di 20 anni ai sensi dell'art. 14 cpv. 1 della LBI (RS 232. 14).
e) Va in definitiva ammesso che, su questo punto, la convenuta non è riuscita a dimostrare che la soluzione adottata sconvolge l'equilibrio del contratto. Nella misura in cui la decisione impugnata è conforme al diritto federale, le censure ricorsuali sono pertanto integralmente respinte.
8.- Egualmente contestato è il diritto dell'attore a percepire una rendita vitalizia, rispettivamente di vedovanza per la moglie dopo la sua morte. La convenuta contesta le valutazioni di merito della Corte cantonale e lamenta una violazione delle norme sulla formazione del consenso e dell'interpretazione dei contratti (art. 1, 2 e 18 CO).
Essa rimprovera in particolare ai giudici cantonali di non aver considerato che, in mancanza di accordo delle parti sull'ammontare della rendita, il contratto non può essere ritenuto validamente concluso. La richiesta di una rendita vitalizia per la moglie non sarebbe d'altronde nemmeno ammissibile, dato che al momento dell'inoltro della petizione l'attore non era ancora sposato.
a) Nella fattispecie il Tribunale d'appello ha accertato che, pur in assenza di qualsiasi norma legale o statuaria in tal senso, il principio di riconoscere una pensione ai partner originari della X._ S.A. - fra i quali figura indubbiamente l'ing. B._ - non è mai stato messo in dubbio, ed anzi, è stato più volte ribadito anche durante le trattative in vista della sottoscrizione di un accordo complessivo per regolare le pretese dell'attore in seguito alla sua uscita dall'azienda. Se però per il dott. F._ la commissione formata "ad hoc" per stabilire le condizioni di pensionamento, composta dai Sigg. G._, H._ e I._, è giunta a formulare una proposta concreta (ed in seguito messa in atto), per l'attore si ritenne che la questione - impregiudicato comunque il suo diritto a percepire una pensione (cfr.
anche i doc. Z1 e M3) - poteva essere definita solo dopo la risoluzione della disputa relativa alle indennità per licenze.
Analogamente, era già stato stabilito sin dal 1963 (cfr. doc. P3) che il diritto alla pensione si estendeva anche agli eventuali superstiti dei fondatori, ed in particolare alle loro vedove; a conferma di questa decisione, la Corte cantonale osserva che alla moglie del dott.
F._ venne riconosciuta una rendita vitalizia in caso di morte del marito (doc. RR). Per quanto attiene agli importi delle rendite, i giudici cantonali si sono fondati, per l'attore, sulle proposte a suo tempo elaborate dalla commissione "ad hoc", e per la vedova, sul raffronto con le pensioni riconosciute e concesse al Dott. F._ e ai superstiti di quest'ultimo.
b) Gli accertamenti di fatto e l'amministrazione delle prove operati dai giudici cantonali sono vincolanti per il Tribunale federale (art. 55 cpv. 1 lett. c OG); l' insorgente, rinunciando a contestarne la correttezza materiale - sotto l'angolo dell'arbitrio - nel parallelo ricorso di diritto pubblico, non può ulteriormente censurarli in questa sede (<ref-ruling> consid. 3a).
Se il Tribunale federale non può andare oltre i limiti delle conclusioni della parti, esso non è tuttavia vincolato dai motivi che queste invocano al loro sostegno (art. 63 cpv. 1 OG), né da quelli contenuti nella decisione cantonale (art. 63 cpv. 3 OG; <ref-ruling> consid. 2a; <ref-ruling> consid. 2).
aa) Punto centrale della controversia è la questione - di diritto - relativa all'avvenuta conclusione di un contratto di rendita vitalizia: quand'anche il principio di riconoscere una pensione straordinaria ai dirigenti della X._ S.A. fosse assodato, la convenuta nega che vi siano agli atti sufficienti riscontri probatori per concludere che le parti abbiano in questa occasione raggiunto un'accordo sul suo importo. Essa pretende che questo elemento - peraltro non desumibile nemmeno interpretando la volontà delle parti giusta l'art. 18 CO - costituisca un punto essenziale del contratto per cui, in suo difetto, la stipulazione della rendita non sarebbe valida.
bb) A torto. Esaminando la documentazione versata agli atti, ed in particolare la corrispondenza intercorsa tra i Sigg. I._, G._ e l'attore stesso, è possibile concludere che la proposta di pensionamento formulata il 24 giugno 1975 dalla commissione "ad hoc", ammontante a fr. 60'000.-- annui, sia stata formalmente accettata da B._ già nella sua lettera del 30 luglio 1975 (doc. N3, pag. 1), nella quale così si esprime: "Ich bin gern mit Eurem Vorschlag einverstanden. ..", posto che rimanevano comunque da chiarire anche le questioni legate alle indennità per licenze ("...vorausgesetzt, dass wir eine passende Lösung für die Lizenzen finden"). È pacifico pure che la proposta di pensionamento dell'azienda è stata ribadita nella sua entità anche in seguito, come ben si evince dalla lettera del 4 luglio 1977 (doc. O3), che segue di pochi giorni la definitiva uscita dell'attore dalla società.
Anche se in quest'ultimo scritto un membro della commissione aveva invero avanzato l'ipotesi di aumentare la rendita pensionistica dagli originari fr. 60'000.-- a fr.
84'000.-- annui, non è stato possibile accertare il seguito di questa proposta, per cui l'importo di fr. 60'000.-- deve essere ritenuto quello che ha in effetti ottenuto il consenso delle parti.
Sulla scorta dei fatti accertati - e non conte- stati - la Corte cantonale non ha pertanto preso una decisione contraria agli art. 1 o 18 CO. L'attore ha infatti manifestato espressamente (art. 1 cpv. 2 CO), per iscritto, la sua approvazione della proposta di controparte, ivi compreso il punto - giustamente ritenuto essenziale - relativo all'ammontare della rendita (art. 2 cpv. 1 CO). Non fosse stato d'accordo sull'importo della rendita, non si vede infatti per quale motivo egli non avrebbe potuto manifestare il suo dissenso, eventualmente con una controproposta cifrata, già in questa sua missiva.
c) L'esistenza di un consenso sufficiente deve essere invece negata, contrariamente all'opinione dell'istanza cantonale, per quanto riguarda il versamento di una rendita vedovile alla moglie superstite. Come rilevato nella decisione impugnata, la documentazione concernente le proposte della commissione "ad hoc" sulle pensioni non menziona prestazioni a favore di una futura o eventuale moglie dell'attore, che a quella data (1975) non risultava d'altronde nemmeno sposato; accenna per contro al versamento di un importo annuale di fr. 12'000.-- a favore della figlia M._ sino al raggiungimento del suo venticinquesimo anno di età (cfr. pag. 2 e 3 doc. N3). Il paragone operato dalla Corte cantonale con la vedova del Dott. F._ non regge, già per il solo fatto che le prestazioni a favore di quest'ultima erano state espressamente previste dalla commissione, e fissate in un importo annuo di fr.
30'000.-- (cfr. doc N3 pag. 3, doc. RR). Analogamente, anche il riconoscimento della pensione alla vedova L._ era stato oggetto di una decisione esplicita del consiglio di amministrazione della società, con indicazione dell'ammontare della rendita (cfr. doc P3, punto 2).
Vero è che nella citata lettera del 4 luglio 1977 un membro della commissione "ad hoc", il Sig. I._, menzionava il fatto che, conformemente alla prassi seguita sin dal 1963 nel caso della vedova L._, sarebbe opportuno prevedere il versamento di una rendita anche alla vedova dell'attore. Orbene, pur interpretando questa dichiarazione secondo il principio dell'affidamento non è possibile pervenire alla soluzione ritenuta nel giudizio impugnato: tale scritto, emanando da un singolo membro della commissione, non può essere considerato vincolante come proposta di pensionamento, al contrario del doc. N3, opera dell'intera commissione; forza è comunque di constatare che questo documento non indica né il nome del beneficiario dell'eventuale rendita di vedovanza - il matrimonio dell'attore essendo ancora nel campo delle ipotesi -, né il suo ammontare. Ne scende che l'accordo delle parti sui punti essenziali del contratto è da ritenersi lacunoso a tal punto - sia per quel che riguarda l'obbligo stesso di versare una rendita vedovile, sia per l'indicazione del destinatario e per l'importo di tale rendita - che la Corte cantonale non poteva completarlo come ha fatto senza violare il diritto federale ed in particolare gli art. 1, 2 e 18 CO (cfr. Kramer, op. cit. , n. 248 ad art. 18 CO; <ref-ruling>). Il punto I.3 del dispositivo impugnato va di conseguenza modificato nel senso che deve essere stralciato l' obbligo per la X._ S.A. di corrispondere a A._ una pensione vitalizia di fr. 37'500.-- annui a partire dal 2 dicembre 1986.
d) A mente della convenuta l'impegno assunto dalla X._ S.A. nei confronti dell'attore di versare una rendita vedovile alla moglie in caso di sua premorte costituirebbe un contratto di rendita vitalizia ai sensi degli art. 516 e segg. CO, la cui validità necessita della forma scritta (art. 517 CO). L'inosservanza, nel caso specifico, di queste prescrizioni di forma del diritto federale portano alla logica conseguenza della nullità di tale contratto.
La questione può nondimeno rimanere indecisa, posto che per le considerazioni espresse al paragrafo precedente il versamento della rendita vedovile è già stato escluso.
9.- Da ultimo la convenuta censura una svista manifesta ai sensi dell'art. 63 cpv. 2 seconda frase OG nel computo finale allestito al considerando 11 della decisione impugnata. Nel calcolo delle pretese relative al II semestre 1977 la Corte cantonale avrebbe omesso di dedurre la quota di 1/3 dall'importo percentuale calcolato sulle correzioni di inventario e sull'accantonamento ICL non ammessi, per una differenza di fr. 108'740.--. Secondo i vincolanti accertamenti della Corte stessa per il secondo semestre del 1977, vale a dire dopo l'uscita dell'attore dalla società, le indennità per licenze erano infatti dovute solo nella ridotta misura dei 2/3.
a) Per giurisprudenza invalsa, una svista manifesta si verifica quando l'autorità cantonale, la cui decisione è impugnata, abbia ignorato, mal letto, ricopiato in modo inesatto o incompleto un documento prodotto agli atti come mezzo di prova (<ref-ruling> consid. 2a, cfr. anche sentenza pubblicata in SJ 1996 pag. 353 segg.). Ciò si verifica, ad esempio, quando dall'esame di un documento agli atti, ma ignorato dai giudici cantonali, rivela un errore evidente nell'accertamento dei fatti. La svista manifesta non va tuttavia confusa con l'apprezzamento delle prove:
non appena sia chiaro che un accertamento di fatto, anche se sbagliato, trae origine dall'apprezzamento probatorio eseguito dai giudici cantonali, la possibilità di invocare una svista manifesta viene a cadere (<ref-ruling> consid. 2c/cc in fine; Münch, Berufung und zivilrechtliche Nichtigkeitsbeschwerde, in: Prozessieren vor Bundesgericht, nota 4.65 seg. ; Poudret, op. cit. , nota 1.6.3 ad art. 55 OG e nota 5.4 ad art. 63 OG).
b) Nella fattispecie le argomentazioni ricorsuali non trovano riscontro negli atti di causa. Come ben si evince dalla perizia contabile alle pag. 21 e 31, le due posizioni che concorrono alla formazione della accertata "correzione di inventario" di fr. 21'548'000.-- (le correzioni di valore per adeguamento ai valori di costo e per rischi di magazzino per fr. 15'748'000.-- e le riserve tacite per fr. 5'800'000.--) sono indicate con il loro valore a bilancio al 31 dicembre 1976; esse si riferiscono quindi chiaramente all'esercizio dell'anno 1976 - o a quelli precedenti - e non a quello del 1977. Analogamente, il perito ha considerato che gli accantonamenti ICL di fr. 200'000.-- non erano più necessari sin dal giugno del 1975, e avrebbero dovuto essere sciolti a favore dell'esercizio 1975 (perizia contabile, pag. 24, in alto). Pertanto, anche questo importo non ha nessuna pertinenza con l'esercizio 1977.
In definitiva è a giusto titolo che il Tribunale d' appello ha applicato su questi importi la percentuale di partecipazione piena (3%) vigente fino al 30 giugno 1977; la circostanza che la X._ S.A. abbia omesso di sciogliere tempestivamente, secondo le usuali regole contabili, riserve e accantonamenti ingiustificati non può invero essere valutata a sfavore dell'attore. Le censura di svista manifesta deve essere quindi respinta, e l'importo di fr.
456'001. 10 oggetto del punto I.1 del dispositivo impugnato confermato.
II. Ricorso A._
10.- Oggetto del ricorso per riforma introdotto da A._ è la riduzione di 1/3 delle percentuali sull' utile netto e la cifra d'affari utilizzate per calcolare le indennità per licenze spettanti al defunto marito. Essa ritiene che nel fare ciò la Corte cantonale abbia violato gli art. 1 e 2 CC e 18 CO, procedendo ad un adattamento contrattuale in assenza di qualsiasi presupposto per l'ammissibilità di un simile intervento normativo: a suo dire non vi è nessun motivo di modificare le condizioni stabilite nella decisione del consiglio di amministrazione del 16/17 settembre 1963, che attribuiscono all'attore una quota di partecipazione pari allo 0,5% della cifra d'affari e al 3% dell'utile netto della società. La sua tesi sarebbe avvalorata dal fatto che questa pattuizione - nella quale le parti non hanno d'altronde previsto clausole d'adeguamento positive o negative - è rimasta in vigore per ben 13 anni (sino al 1976) senza cambiamenti né contestazioni di sorta.
Su questo punto l'attrice rimprovera inoltre ai giudici di prima istanza un apprezzamento giuridico errato dei fatti (art. 43 cpv. 4 OG).
a) La censura risulta d'acchito interamente inam-missibile per il motivo esposto qui di seguito. Diversamente da quanto sostenuto nel gravame, la Corte cantonale non ha preso la sua decisione facendo ricorso ad un adattamento del contratto a (presunte) mutate circostanze, ma bensì ha dedotto la volontà delle parti direttamente dalle risultanze istruttorie. Essa ha infatti osservato che gli atti di causa hanno permesso di accertare che, se da un lato la pattuizione contenuta nella già menzionata decisione del consiglio di amministrazione del 16/17 settembre 1963 (doc. III) è sufficientemente chiara nel mettere in relazione la retribuzione dell'attore con la sua attività inventiva (cfr. consid. 3.1.1), dall'altro le indennità ricevute a titolo di percentuale su cifra d'affari e utile netto della società hanno assunto, con il passare degli anni, una duplice finalità: rimunerazione dell'attività inventiva svolta e compenso per la sua attività di primo delegato, consigliere di amministrazione, nonché di direttore del settore ricerca e sviluppo della X._ S.A. (cfr.
consid. 3.1.2). L'istruttoria ha inoltre provato un'evidente, quanto inspiegabile, sproporzione tra le rimunerazioni del primo delegato B._ e quelle del secondo delegato C._ in relazione al periodo 1971-1976.
Inoltre, emerge sostanzialmente dagli atti che l'attore stesso era consapevole del fatto che la sua attività dirigenziale - "in primis" quella di consigliere di amministrazione - non era retribuita separatamente (cfr. doc. P2) e che quella di delegato non era sufficientemente coperta dal solo importo del suo salario fisso (fr. 120' - 140'000.-- all'anno tra il 1966 e il 1976), tant'è che in un proprio scritto (doc. D2) egli ha valutato di aver diritto ad un compenso anno di circa fr. 300'000.-- l'anno solo per questa sua funzione.
Contrariamente alle affermazioni ricorsuali, la Corte cantonale non ha invece ritenuto come motivo determinante per la sua decisione la crescente entità delle indennità per licenze, aumentate dopo il 1963 promozionalmente all'aumento della cifra d'affari e all'utile dell'azienda; un'attenta lettura del consid. 3.1.2. della sentenza cantonale non permette infatti di avvalorare questa tesi.
Né l'attrice può validamente sostenere che le ragioni alla base della riduzione di 1/3 delle indennità non siano chiaramente evincibili dalla sentenza; al contrario, i giudici ticinesi hanno enumerato i vari (e numerosi) elementi dell' istruttoria che hanno permesso di elucidare la vera natura del rapporto contrattuale tra le parti e la duplice composizione della rimunerazione corrisposta all'ing.
B._: testimonianze di revisori, amministratori della società e rappresentanti di autorità fiscali, confronto tra la rimunerazione dell'ing. B._ e quella del secondo delegato Sig. C._ negli anni 1971-1976 (doc. 80), nonché l'esame di altri documenti rilevanti (doc. 79, doc.
D2; doc P2).
Dal momento che le censure esposte da A._ nel parallelo ricorso di diritto pubblico contro gli accertamenti di fatto e la valutazione probatoria operati dalla Corte cantonale sono state respinte, essa non può pretendere di metterli ulteriormente in discussione in sede di ricorso per riforma. Per consolidata giurisprudenza, il Tribunale federale è infatti vincolato dall'accertamento dei fatti eseguito dall'ultima istanza cantonale, a meno che siano state violate disposizioni federali in materia di prove, che debbano essere rettificati accertamenti di fatto derivanti da una svista manifesta o che si renda necessario un complemento degli stessi (art. 63 e 64 OG; <ref-ruling> consid. 2, 115 II 484 consid. 2a), eccezioni però queste che - pacificamente - non vengono sollevate nel presente gravame.
b) In aggiunta alla violazione delle precitate norme del CC e del CO, l'attrice ritiene inoltre che il Tribunale d'appello si sia basato su un apprezzamento giuridico erroneo dei fatti giusta l'art. 43 cpv. 4 OG.
A torto. È vero che tale norma assimila l'apprezzamento giuridico erroneo di un fatto alla violazione del diritto federale prevista dall'art. 43 cpv. 1 OG. Ma l'apprezzamento giuridico di un fatto altro non è che la sua qualificazione giuridica (sussunzione). In sostanza, dunque, il capoverso 4 non aggiunge nulla a quanto già stabilito all'art. 43 cpv. 1 OG (Poudret, Commentaire de la loi fédérale d'organisation judiciaire, vol. II, Berna 1990, nota 5 ad art. 43 OG, pag. 178). Ebbene, in esito a quanto già detto al precedente considerando sull'inconsistenza delle argomentazioni ricorsuali, la censura non merita ad ogni modo di essere ulteriormente approfondita; deve essere anch'essa dichiarata inammissibile già per il solo motivo che l'attrice censura, fondando il suo ricorso esclusivamente sulla teoria dell'adattamento contrattuale, un apprezzamento giuridico dei fatti che non trova riscontro alcuno nella sentenza impugnata (art. 55 cpv. 1 lett. cOG).
c) In definitiva, non avendo l'attrice addotto alcuna censura suscettibile di essere esaminata nell'ambito della giurisdizione per riforma, né sostanziato una violazione del diritto federale, il suo ricorso va dichiarato inammissibile. La decisione della Corte cantonale che riduce di un terzo l'ammontare delle indennità per licenze merita conferma in questa sede.
III. Conclusione
11.- Stante le considerazioni espresse al considerando 8c) il ricorso per riforma introdotto dalla X._ S.A. è parzialmente accolto; la sentenza impugnata è di conseguenza modificata nel senso che il punto I.3 del dispositivo è annullato limitatamente alla pensione vitalizia dovuta a A._ dopo il 2 dicembre 1986. Il ricorso interposto dall'attrice deve invece essere dichiarato inammissibile.
Visto l'esito dei gravami, gli oneri processuali e le spese ripetibili sono ripartiti fra le parti in ragione della reciproca soccombenza (art. 156 cpv. 3 e 159 cpv. 3 OG). Ritenuto che il ricorso interposto dalla convenuta trova parziale accoglimento, mentre quello della parte attrice è inammissibile, si giustifica di porre tali costi per 1/3 a carico della convenuta e per 2/3 a carico dell' attrice. Dato che l'incarto viene rinviato all'autorità cantonale per nuovo giudizio, incombe ad essa il compito di statuire nuovamente sulla ripartizione degli oneri processuali e ripetibili a livello cantonale.

Per questi motivi
il Tribunale federale
pronuncia :
1. Il ricorso per riforma interposto da A._ è dichiarato inammissibile.
2. Nella misura in cui è ammissibile, il ricorso per riforma interposto dalla X._ S.A. è parzialmente accolto.
§ La sentenza impugnata viene modificata nel senso che il punto I.3 del dispositivo è annullato limitatamente alla pensione vitalizia dovuta a A._ dopo il 2 dicembre 1986. Per il resto la querelata decisione è confermata.
3. La causa è rinviata alla Corte cantonale per nuovo giudizio sulle spese processuali e ripetibili della sede cantonale.
4. La tassa di giustizia di complessivi fr.
24'000.-- è posta per fr. 8'000.-- a carico della convenuta e per fr. 16'000.-- a carico dell'attrice, la quale rifonderà alla convenuta fr. 10'000.-- per ripetibili ridotte della sede federale.
5. Comunicazione ai patrocinatori delle parti e alla II Camera civile del Tribunale d'appello del Cantone Ticino.